前言:
如今兄弟们对“c中有符号的数与无符号数比较原理是什么”大约比较关心,大家都想要学习一些“c中有符号的数与无符号数比较原理是什么”的相关内容。那么小编在网络上网罗了一些有关“c中有符号的数与无符号数比较原理是什么””的相关知识,希望朋友们能喜欢,看官们快快来了解一下吧!S7-200 SMART的数据与实际输入/输出信号相关的输入/输出映象区:
I:数字量输入(DI);
Q:数字量输出(DO);
AI:模拟量输入;
AQ:模拟量输出;
内部数据存储区:
V:变量存储区,可以按位、字节、字或双字来存取V 区数据;
M:位存储区,可以按位、字节、字或双字来存取M区数据;
T:定时器存储区,用于时间累计;
C:计数器存储区,用于累计其输入端脉冲电平由低到高的次数;
HC:高速计数器,独立于 CPU 的扫描周期对高速事件进行计数,高速计数器的当前值是只读值,仅可作为双字(32 位)来寻址;
AC:累加器,可以像存储器一样使用的读/写器件,可以按字节、字或双字访问累加器中的数据;
SM:特殊存储器,提供了在 CPU 和用户程序之间传递信息的一种方法。 可以使用这些位来选择和控制 CPU 的某些特殊功能, 可以按位、字节、字或双字访问 SM 位;
L:局部存储区,用于向子例程传递形式参数;
S:顺序控制继电器,用于将机器或步骤组织到等效的程序段中,实现控制程序的逻辑分段。 可以按位、字节、字或双字访问 S 存储器。
基本数据类型位(bit)
常称为BOOL(布尔型),只有两个值:0或1。如下图中的I0.0、I0.2、Q0.1均为BOOL型,还有M0.0,V0.1等。
具体的位地址元素如下:
字节(Byte)
一个字节(Byte)等于8位(Bit),其中0位为最低位,7位为最高位。如:IB0(包括I0.0~I0.7位),QB0(包括Q0.0~Q0.7位),MB0,VB0等。范围:00~FF(十进制的0~255)。
例如:我们把8个“1111 1111”(8“1”由“16#FF”转成2进制)传送给QB0,就代表着Q0.0~Q0.7的状态都为1进行输出。
字(Word)
相邻的两字节(Byte)组成一个字(Word),来表示一个无符号数,因此,字为16位。如:IW0是由IB0和IB1组成的,其中I是区域标识符,W表示字,0是字的起始字节。需要注意的是,字的起始字节(如上例中的“0”)都必须是偶数。字的范围为十六进制的0000~FFFF(即十进制的0~65536)。在编程时要注意,如果已经用了IW0,如再用IB0或IB1要特别加以小心。
例如:我们把16个“1111 1111 1111 1111”(16“1”由“16#FFFF”转成2进制)传送给QW0,就代表着Q0.0~Q1.7的状态都为1进行输出。
双字(Double Word)
相邻的两个字(Word)组成一个双字,来表示一个无符号数。因此,双字为32位。如:MD100是由MW100和MW102组成的,其中M是区域标识符,D表示双字,100是双字的起始字节。需要注意的是,双字的起始字节(如上例中的“100”)和字一样,必须是偶数。双字的范围为十六进制的0000~FFFFFFFF(即十进制的0~4294967295)。在编程时要注意,如果已经用了MD100,如再用MW100或MW102要特别加以小心。
例如:我们把32个“1111 1111 1111 1111”(32“1”由“16#FFFF FFFF”转成2进制)传送给MD0,就代表着M0.0~M3.7的状态都为1进行输出。并且需要注意的是MD0是由MW0和MW2组成,所以MW0和MW2各有有8个“1111 1111”(8“1”由“16#FF”转成2进制)。
字节、字、双字寻址的表示如下图所示:
以上的字节、字和双字数据类型均为无符号数,即只有正数,没有负数。
16位整数(INT,Integer)
整数为有符号数,最高位为符号位,1表示负数,0表示正数。范围为-32768~32767。
例如:我们把1245传送给MW0, -1245传送给MW2,但是若输入为1245.0,编译程序会报错。
32位整数(DINT,Double Integer)
32位整数和16位整数一样,为有符号数,最高位为符号位,1表示负数,0表示正数。范围为-2147483648~2147483647。
浮点数(R,Real)
浮点数为32位,可以用来表示小数。浮点数可以为:1.m×2e,其存储结构如图所示:
例如:我们把1245.0传送给MD4,需注意的是浮点数为32位的双字(Double Word)。
常数
常数的表示方法:常数可以是字节、字或双字,CPU以二进制方式存储,也可以用十进制,十六进制ASCII码或浮点数形式来表示。
标签: #c中有符号的数与无符号数比较原理是什么