首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 汇编语言 >

请教一个数在内存中的二进位是什么样子的

2012-03-30 
请问一个数在内存中的二进位是什么样子的用Intel处理器,一个LongInt,四字节,在内存中,高位字节在后,低位字

请问一个数在内存中的二进位是什么样子的
用Intel处理器,一个LongInt,四字节,在内存中,高位字节在后,低位字节在前,这个我知道。
请问:
(1)一个单字节数,如十进制数22,它在内存中的各二进位是什么样子的?
是0001   0110   还是0110   1000   还是   0110   0001   还是   1000   0110   ?
(2)为什么Intel处理器有高位字节在后,低位字节在前这样的“约定”?与之不同的CPU有哪些?

[解决办法]
> (1)一个单字节数,如十进制数22,它在内存中的各二进位是什么样子的?
是0001 0110 还是0110 1000 还是 0110 0001 还是 1000 0110 ?

8位(bit)二进制位(位7-位0)权值:256 64 32 16 8 4 2 1
22对应: 0 0 0 1 0 1 1 0
22的8位二进制码:0001 0110

(2)为什么Intel处理器有高位字节在后,低位字节在前这样的“约定”?与之不同的CPU有哪些?

如果计算表达式65+22,CPU可以轻易的通过计算
0 0 0 1 0 1 1 0
+0 1 0 0 0 0 0 1
-----------------
= 0 1 0 1 0 1 1 1
通过高字节再后面可以非常容易的对应数据的2进制的权值。而且能够轻易的实现数据的长度扩展,以及字节长度不同的数据的运算问题。还可以方便对内存数据的访问。

热点排行