大端模式和小端模式区别与检测

  1. 背景

    1. 在内存中一个地址存储一个字节(Byte)的数据,即8位。
    2. 一个int型数据有32位,需要占用4Byte的空间,那么应该怎么存储int的数据呢?是高位先存储还是低位先存储?因此产生了两种不同的模式,即大端模式和小端模式。
  2. 是什么

    1. 大端模式:高位先存,数据的高位(即大端)存在低地址;
    2. 小端模式:低位先存,数据的低位(即小端)存在低地址。
  3. 举例子
    例如:int temp = 0xAABBCCDD; // 假设存储在地址0x1000;

    • 大端模式:
      0x1000 0xAA;
      0x1001 0XBB;
      0x1002 0xCC;
      0x1003 0XDD;
    • 小端模式:
      0x1000 0xDD;
      0x1001 0XCC;
      0x1002 0xBB;
      0x1003 0XAA;
  4. 怎么知道当前系统是大端模式还是小端模式?
    测试方法:使用union来测试大小端模式。代码如下:

bool checkSystem()
{
  union check
  {
      int i;
      char ch;
  } chk;
  chk.i = 1;
  return (chk.ch==1);//如果是大端模式,返回false;如果是小端模式,函数返回true。
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值