什么是高地址,什么是低地址,举举例说明?

什么是高地址,什么是低地址,举举例说明?
可以把主存看成一本空白的作业本,你现在要在笔记本上记录一些内容,他的页码排序是
第一页 : 0x0000001
第二页 : 0x0000002

最后一页: 0x0000092
1 如果你选择从前向后记录(用完第一页,用第二页,类推)这就是先使用低地址,后使用高地址.
0x0000001 -> 0x0000002-> … -> 0x0000092
业内有这样表述:动态分配内存时堆空间向高地址增长,说的就是这种情况.
这个向高地址增长就是先使用低地址,后使用高地址的意思.
2 如果你选择从后往前记录(先用笔记本的最后一页,用完后使用倒数第二页,类推) 这就是先使用高地址,后使用低地址
0x0000092 -> … ->0x0000002 -> 0x0000001
业内表述:0xbfac 5000-0xbfad a000是栈空间,其中高地址的部分保存着进程的环境变量和命令行参数,低地址的部分保存函数栈帧,栈空间是向低地址增长的.
这个向低地址增长就是先使用高地址,后使用低地址的意思.
这个高地址低地址容易与高位``低位产生混淆.
比如我这个月工资为1234(一千二百叁拾肆块),那么这串数字的左边我们称呼为高位,右边称为低位.
(这个高低来自于人类的阅读习惯,数字从左向右,表示由大到小)
在计算机中以int类型存储工资,假设int占用四个字节,每个字节地址如下
0x00008
0x00009
0x0000a
0x0000b
把工资加载到内存中时,就会有两种存储方式,如下:
// 大端法
0x00008 => 1
0x00009 => 2
0x0000a => 3
0x0000b => 4
或者
// 小端法
0x00008 => 4
0x00009 => 3
0x0000a => 2
0x0000b => 1
内存中的低地址存储工资中的高位这种方式称为大端法.如果把上边的存储方式反过来,内存中的高地址存储工资中的高位,则称为小端法 little endian.
(注释:可以采用异或方法来记忆 低地址存低位为小端法-> 弟弟小 O-O).
主机采用大端还是小端表示数据由CPU的架构决定,如果两个主机只见交互数据,但是字节序表示不同,需要同化.

原文链接:https://zhidao.baidu.com/question/1900511789089474940.html

  • 34
    点赞
  • 83
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值