G.1 IEEE32浮点数
IEEE32是国际电工委员会制订的浮点数表示方式,主要内容是用4个字节来表示浮点数,可以表示的数据的负数范围是-2*2~-2
128
-127
,2
-127
~2*2。如下图所示,最高位(bit31)
128
表示浮点数的符号位(0为正,1为负);bit30-bit23这8位表示浮点数的阶码(以2为底),取值范围0-FF(十六进制),用7F表示阶码为0,80表示阶码为1,7E表示阶码为-1,依次类推。bit22-bit0表示浮点数的尾数的小数部分,尾数的整数部分缺省永远是1。
Bit31 bit30 bit23 bit22 Bit0
字节3 字节2 字节1 字节0
现用一个例子简要说明IEEE32浮点数的表示方法,假设现在有一个IEEE32浮点数,它的十六进制格式是0X42C80000,二进制格式是01000010 11001000 00000000 00000000,按照上面的规则,阶码应该是10000101,即0X85,尾数的小数部分是二进制的0.1001,换算成十进制即是0.5625,由于尾数的整数部分缺省永远是1,因此该浮点数的值应该是+15625*2
85-7F
=100。
由于IEEE32浮点数只用4个字节即可以表示很大范围的数据,因此在通讯中经常使用,以提高通讯效率。IEEE32浮点数在二进制通讯方式中使用较多。在实际通讯过程中,如果I/O设备采用的是INTEL 公司的CPU,则在通讯过程中不管是I/O设备向PC机还是PC机向I/O设备发送浮点数,都必须按照字节0、字节1、字节2、字节3的顺序发送如,果I/O设备采用的是MOTOROLA 公司的CPU,数据即发送顺序则相反。这种情况并不绝对,只代表多数情况,在涉及到数据格式时应首先以I/O设备的使用手册为准。
G.2 16位及32位有符号整数
16位和32位有符号整数使用最高位作为符号位,0代表正数,1代表负数,负数用补码表示,例如用16位有符号整数表示-100,应该是+100的补码,即0X64的补码0XFF9C。
因篇幅问题不能全部显示,请点此查看更多更全内容