基本的楼上也说了,再补充几点。
(1)之所以要分低8位和高8位的原因是,普通51单片机(其实基本上简单的单片机都这样)的寄存器只能放下8个字(位,bit),即1 byte(1字节)
(2)高低八位其实就是把一个数拆开来。如果一个数高于0xff,小于0xffff就会出现放不进1个寄存器但却能拆开来放在2个寄存器的情况(这种情况很普遍)。所以这时候把这个数转换成16位的2进制数,然后把16位拆成高8位和低8位。而在8088之类的危机中,更有20位寻址,把数拆成高4位低16位的情况。
(3)其实八位八位得拆很直观啊,一个16进制数可以变成4位2进制数(而不用进行其他变化),比如0xfa就可以看成0xf0+0x0a,f=1111,a=1010,所以0xfa=1111(高四位) 1010(低四位),很方便吧。这就是八进制、十六进制、二进制为何广泛应用于数字系统设计的原因。而数字电路中从最简单的3-8译码器,到64位微机都很注重高低位的放置。
(4)所以综上,0x2f4a中,2f就是高八位,4a就是低八位,如果0x4a,则4是高四位,a是低四位
在51单片机上一个int型为16位数据,char型为8位数据。
高8位低8位是对应于16位数据来说的,
如二进制的:1111111100000000 16进制的:0xff00
那么它的的高8位则是:11111111(二进制) 0xff(16进制)
低8位则是:00000000 0x00
同理,高4位低4位是对应于8位数据来说的。
学习了