之前我们说了PLC的数据类型分为三类,基本数据类型、复杂数据类型、参数类型数数据类型。我们只介绍了三类:位、字节、字、双字。
下面我们再介绍另外几种:整数(INT)、双精度整数(DINT),它们是有符号,分正负的。在PLC中存储这些数都是以二进制存储的,二进制位存储的整数和双整数的最高位就是它们的符号位,最高位如果是0,就是正数,最高位如果是1,则为负数。
在存储器中,负数的存储方式是以原数的补码表示:
比如:-10,用16位二进制表示,INT类型号的。
它的源码是:2#1000 0000 0000 1010(最高位1表示负数)
转成反码: 2#1111 1111 1111 0101(符号位不变,其它取反,1变0,0变1)
反码转成补码:2#1111 1111 1111 0110(反码=补码+1)
下面来说一下数据类型号的取值范围:
字节:长度为8,它的最大值就是2#1111 1111=10#255,所以字节的取值范围就是0~255
字: 长度为16,它的最大值就是:2#1111 1111 1111 1111=10#65535 ,所以字节的取值范围就是0~65535。
双字:长度为32,它的最大值:2#1111 1111 1111 1111 1111 1111 1111 1111=10#4294967295。
整数(INT):长度16位,因为它是带符号的,所以,它的取值范围就是:-32768~+32767,是把65535从中间划开,一半正数一半负数。
长整数(DINT):长度32位,带符号,取值范围是:L#-2147483648~L#+2147483647。S7-300规定,只要是长整数,数字前面加L#。
了解取值范围的用处是,处理什么样的数字,可以用什么类型的数据类型,如果数字过大,选用的数据类型过小,就会超出数据类型的范围而出错。