编程论坛
注册
登录
编程论坛
→
汇编论坛
20000的二进制是100111000100000为什么到内存中就变成0100?求真相
STRD
发布于 2012-08-11 23:37, 920 次点击
20000的二进制是100111000100000为什么到内存中就变成
0100111000100000.这是为什么?求详细的解释。。。
8 回复
#2
STRD
2012-08-11 23:40
回复 楼主 STRD
20000的二进制是100111000100000为什么到内存中就变成
0100111000100000.这是为什么?
有人详细解释下么,郁闷中。
#3
zklhp
2012-08-11 23:41
书上说的很明白了 小尾模式 或者叫小端模式
百度百科里就有
http://baike.baidu.com/view/1922338.htm
#4
STRD
2012-08-12 00:36
以下是引用
STRD
在2012-8-11 23:40:24的发言:
20000的二进制是100111000100000为什么到内存中就变成
0100111000100000.这是为什么?
有人详细解释下么,郁闷中。
我知道这是小端模式了,也叫小尾模式。但它到底是怎么变化的还没看明白。
内存地址 0000 0000 0000 0000
存放内容 0000 0000 0000 0000
这是怎么衍算的?能帮忙填一下吗?
#5
TonyDeng
2012-08-12 00:41
16位二进制数,由两个8位二进制数组成。把你上面的二进制数左右分开两个8位,在前的叫高位数,在后的叫低位数,当小端储存时,低位在前、高位在后,是反过来的。
#6
STRD
2012-08-12 00:54
16进制,16进制害死人了,总以为有16个数,终于看清楚了,谢谢版主的解答。
#7
TonyDeng
2012-08-12 00:57
16进制是2位为1字节,4位2字节即16位二进制数,每2位1字节,也是同样的对调,用16进制编辑器看就是这样的了,没有二进制编译器看的。
#8
STRD
2012-08-12 01:18
以下是引用
STRD
在2012-8-12 00:54:01的发言:
16进制,16进制害死人了,总以为有16个数,终于看清楚了,谢谢版主的解答。
纠正一下,这里打错了,应该打16位二进制数,计算器显示15位,我以为二进制是16位数,所以才看了半天。计算器省略了个零。
#9
TonyDeng
2012-08-12 01:23
哦,原来这样,呵呵。
1