简述CPU的大小端 (易于理解)

CPU大小端模式


一、为何会有大小端之分?


在计算机系统中,一个存储单元的大小为一个字节(1Byte = 8bit),一个存储单元对应一个地址单元。(按字节编址)

对于位数大于8位的处理器,如16,32,64位等,由于其寄存器宽度大于一个字节,必然存在着多字节顺序安排的问题。这就衍生出了大端存储、小端存储的差异。

二、什么是大端和小端?


  • 大端存储:在 一个数据要占用的内存空间 中,高位字节存储在低地址,低位字节存储在高地址。(与人们的阅读顺序相符)

  • 小端存储:在 一个数据要占用的内存空间 中,高位字节存储在高地址,低位字节存储在低地址。(与人们的阅读顺序相逆)

eg. 一个 int型数据 0x7bH (123)

  • 大端存储(低地址 0 → 高地址 4G)
    (0x0000 0000) → … 00 00 00 7b … → (0xffff ffff)

  • 小端存储(低地址 0 → 高地址 4G)
    (0x0000 0000) → … 7b 00 00 00 … → (0xffff ffff)

注:数据类型大于一个字节时(int,float…),才有大小端问题。例如,char型数据不存在分大小端,以两个char型字符存储的汉字亦不分。

三、各有何优缺点?


小端存储,做强制类型转换时,可以不用改变内存中的内容。

大端存储,符号位位于内存首位,易于判断。

其实没有很大的差异。。Inter当时使用小端可能是为了规避专利问题。

大端模式:PowerPC、IBM、Sun

小端模式:x86、DEC

ARM比较灵活,既可以工作在大端模式,也可以工作在小端模式

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值