linux64是大端还是小端,大端和小端区别-linux

Little-Endian:低位字节排放在内存的低地址端,高位字节排放在内存的高地址端。

Big-Endian:高位字节排放在内存的低地址端,低位字节排放在内存的高地址端。

记忆方法:小端:低地址存放低位;大端高地址存放低位。(小顺,大逆)

先解释一下?

高地址、低地址:这个很明显,地址大则是高地址,地址小则是低地址。

低位、高位:

从int型分析:0x00 12 34 56;从数据大小来判断,从左到右分别是高位到低位。例如1000元,1当然是高位,0当然是低位。

由于这个int型是以十六进制表示的,0x6则表示一个十六进制位;

由于一个十六进制占用4位byte,也就是0xF等于0b1111(0b表示二进制表示);

由于一个地址存放8位byte,也就是最大十六进制数0xFF;

所有这个int型由4个地址存放。

如图:小端模式

48cf45a83aa8cf52e61e8cd9121a6ee7.png

例如:

int a=0x 00 12 34 56;

printf("addr:0x%0x, dat:%0x\n", ((char *)&a)[0]);

printf("addr:0x%0x, dat:%0x\n", ((char *)&a)[1]);

printf("addr:0x%0x, dat:%0x\n", ((char *)&a)[2]);

printf("addr:0x%0x, dat:%0x\n", ((char *)&a)[3]);

输出结果:[为小端,低地址存放低位]

addr: 0xb6af0cac, dat:56

addr: 0xb6af0cad, dat:34

addr: 0xb6af0cae, dat:12

addr: 0xb6af0caf, dat:00

相反则说明是大端

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值