发布网友
共2个回答
热心网友
第一步:使用TRNUC(截尾取整)指令将浮点数转换为整数(32位),如果你要得到DINT的整数,那么无需下一步了,如果你要16位的INT数据类型,那么继续第二步。第二步:判断第一部的数据正负,同时判断第一步中数据的大小是否在+32767~-32768之间。第三步:如果数据大于32767,那么输出32767,如果小于-32768,那么输出-32768,如果在这两者之间,那么进行第四步。第四步:将Dint的低16位数据字节读取,使用MOV指令,如果为负数,那么需要使用或指令给最高位置1。以上
热心网友
当然,如果你自己能确定你需要转换的值在INT数据类型规定的范围之内的话,截尾取整后直接读取低字并在最高位赋予符号位也可以。以上