A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 寇亮 中级黑马   /  2014-8-7 21:48  /  1792 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 寇亮 于 2014-8-9 12:13 编辑

对于跨越多个字节的程序对象,我们必须建立两个规则:这个对象的地址是什么,以及在存储器中如何排列这些字节。
第一个规则:在几乎所有的机器上,多字节对象都被存储为连续的字节序列,对象的地址为所使用字节中最小的地址。
第二个规则:排列对象的字节,有两种不同方式。
                     最低的有效字节排在最前面的方式,称为小端法(大多数Intel兼容机都采用这种方式)。
                     最高有效字节在最前面的方式,称为大端法(大多数IBM和Sun Microsystems的机器采用这种方式)。

8 个回复

倒序浏览
本帖最后由 寇亮 于 2014-8-7 21:57 编辑

所以C语言中,先后定义两个变量
int number=12;  
int number=13;
其在内存中的存储属性应该类似这样的:
number和number2的地址分别为ffc6、ffc2

一般机器适用小端法规则。

ff.png (33.6 KB, 下载次数: 107)

变量存储属性

变量存储属性
回复 使用道具 举报
搞不懂,太基层了!!菜鸟表示完全没懂!!只知道变量就相当于一个容器,里面可以存定义类型的值!
回复 使用道具 举报
配合楼主配图总算看懂意思了。。
回复 使用道具 举报
假设变量 x 类型为 int , 位于地址 0x100 处。x 的十六进制值为 0x01234567 。其排列顺序依赖于机器类型。

1. 大端法
      地址    0x100    0x101    0x102    0x103
存放内容    01         23         45         67

2. 小端法
      地址    0x100    0x101    0x102    0x103
存放内容    67         45         23         01


回复 使用道具 举报
忘了这个 数据结构还是机组里讲过的。。。
回复 使用道具 举报
注意最小的存储单元是字节,两个十六进制位可以表示一个字节(8bit)。
回复 使用道具 举报
得好好复习复习
回复 使用道具 举报
额,不明觉厉
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马