c++的大端小端

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zpxyklmwjlq/article/details/79920842

大端:数据的低位保存在内存的高地址中,数据的高位保存在内存的低地址中。

在x86下,考虑到在内存中是按照字节为单位进行数据排布,那么会把0x12,0x34这2个值按照大端进行存储。

例1:16位宽的数0x1234

地址(由低到高)0x4000(低地址)0x4001(高地址)
(大端)存放内容0x12(高位)0x34(低位)

例2:32位宽的数0x12345678

在x86下,考虑到在内存中是按照字节为单位进行数据排布,那么会把0x12,0x34,0x56,0x78这4个值按照大端进行存储。

地址(由低到高)0x4000(低地址)0x40010x40020x4003(高地址)
(大端)存放内容0x12(高位)0x340x560x78(低位)


小端:数据的高位保存在内存的高地址中,数据的低位保存在内存的低地址中。

例3:16位宽的数0x1234

在x86下,考虑到在内存中是按照字节为单位进行数据排布,那么会把0x12,0x34这2个值按照小端进行存储。

地址(由低到高)0x4000(低地址)0x4001(高地址)
(小端)存放内容0x34(低位)0x12(高位)

例4:32位宽的数0x12345678

在x86下,考虑到在内存中是按照字节为单位进行数据排布,那么会把0x12,0x34,0x56,0x78这4个值按照小端进行存储。

地址(由低到高)0x4000(低地址)0x40010x40020x4003(高地址)
(小端)存放内容0x78(低位)0x560x340x12(高位)

阅读更多
换一批

没有更多推荐了,返回首页