黑马程序员技术交流社区
标题:
变量的存储属性(寻址和字节顺序)
[打印本页]
作者:
寇亮
时间:
2014-8-7 21:48
标题:
变量的存储属性(寻址和字节顺序)
本帖最后由 寇亮 于 2014-8-9 12:13 编辑
对于跨越多个字节的程序对象,我们必须建立两个规则:这个对象的地址是什么,以及在存储器中如何排列这些字节。
第一个规则:在几乎所有的机器上,多字节对象都被存储为连续的字节序列,对象的地址为所使用字节中最小的地址。
第二个规则:排列对象的字节,有两种不同方式。
最低的有效字节排在最前面的方式,称为小端法(大多数Intel兼容机都采用这种方式)。
最高有效字节在最前面的方式,称为大端法(大多数IBM和Sun Microsystems的机器采用这种方式)。
作者:
寇亮
时间:
2014-8-7 21:55
本帖最后由 寇亮 于 2014-8-7 21:57 编辑
所以C语言中,先后定义两个变量
int number=12;
int number=13;
其在内存中的存储属性应该类似这样的:
number和number2的地址分别为ffc6、ffc2
一般机器适用小端法规则。
ff.png
(33.6 KB, 下载次数: 105)
下载附件
2014-8-7 21:55 上传
变量存储属性
作者:
alexanda
时间:
2014-8-7 21:59
搞不懂,太基层了!!菜鸟表示完全没懂!!只知道变量就相当于一个容器,里面可以存定义类型的值!
作者:
从今以后
时间:
2014-8-7 22:07
配合楼主配图总算看懂意思了。。
作者:
寇亮
时间:
2014-8-7 22:08
假设变量 x 类型为 int , 位于地址 0x100 处。x 的十六进制值为 0x01234567 。其排列顺序依赖于机器类型。
1. 大端法
地址 0x100 0x101 0x102 0x103
存放内容 01 23 45 67
2. 小端法
地址 0x100 0x101 0x102 0x103
存放内容 67 45 23 01
作者:
努力微笑
时间:
2014-8-7 22:09
忘了这个 数据结构还是机组里讲过的。。。
作者:
寇亮
时间:
2014-8-7 22:10
注意最小的存储单元是字节,两个十六进制位可以表示一个字节(8bit)。
作者:
耀眼的小男人
时间:
2014-8-8 13:46
得好好复习复习
作者:
逍遥客
时间:
2014-8-8 21:43
额,不明觉厉
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2