C语言:大小端

大小端

对于整型来说,内存中存放的是补码,补码是按大小端模式进行存储:

大端存储数据低位存在内存高地址,高位存在内存低地址
小端存储数据低位存在内存低地址,高位存在内存高地址

记忆方法 小小小:数据 小 权值位放在 小 地址处,叫 小 端 ,
其余情况就是大端

这个规律是将数据按字节(00,FF每两个数是一个字节)的顺序进行存储,而不是按二进制位的顺序
在这里插入图片描述

计算机只从低地址处开始访问

为何会有大小端存储方式

  • 因为计算机系统以字节为单位的,每个地址单元都对应着一个字节,一个字节为8bit;
  • 除了8bit的char之外,还有16bit的short型,32bit的long型(看具体的编译器);
  • 对于位数大于8位的处理器,如16位或者32位;
  • 由于寄存器宽度大于一个字节,那么必然存在着一个如何将多个字节安排的问题;
  • 因此就导致了大端存储模式和小端存储模式。

如何用代码判断计算机的大小端

在这里插入图片描述
实现:
1的十六进制为0x00000001,若是小端存储,则第一个字节值为1,若是大端存储,第一个字节的值为0;
指针的类型决定其解引用操作可访问几个字节,char指针解引用只能访问或操作一个字节的内容,将a的地址强制转化成char*类型,再用char指针访问首字节。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值