【面试】百度面试题-求当前机器的字节序是什么?
创始人
2025-05-30 11:37:03

2015年百度面试题:编写程序,求当前机器的字节序是什么?

1、缘起

什么是字节序(Endian)? 字节序就是字节的存储顺序,即数据的高低位,存储在地址空间的高地址,还是存储在地址空间的低地址。我们把这种数据的存储行为称为数据的存储模式。数据的存储模式分为大端存储模式(Big-Endian)小端存储模式(Little-Endian),也叫做大端字节序小端字节序

1.1、大端字节序

  • 如果数据低位字节存储在内存的高地址,数据高位字节存储在内存的低地址,我们把这种数据存储模式称为数据大端存储模式或者网络存储模式
  • 套接字通信过程中操作的数据都是大端存储的,包括:接受/发送的数据、IP 地址、端口。

1.2、小端字节序

  • 如果数据低位字节存储在低地址,数据高位字节存储在高地址,我们这种数据存储模式称为数据小端(Little-Endian)存储模式或者主机存储模式
  • 我们使用的 PC 机,数据的存储模式默认是小端存储模式。
    在这里插入图片描述

2、代码

算法思想:就取一个字节的地址,进行比较。

#includeint main()
{int ret = CheckSystem();if (1 == ret){printf("小端\n");}else{printf("大端\n");}return 0;
}	int CheckSystem()
{int a = 1;return * (char*)&a;
}
  • 关键代码解释:

    ① int a = 1;
    定义了一个4个字节的空间,这个空间的名称为 a,a 中的值为 1,1 为十进制数;a 中的二进制值为 00000000 00000000 00000000 00000001,二进制值从左往右,数据位从高到底依次递减。
    在这里插入图片描述
    ② *(char*)&a
    因为 a 被定义为 4 个字节,所以用 char 强制类型转换,取 a 一个字节的地址( a 的首字节地址),查看其地址中存储的值,如果值为 1,则该机器数据存储模式为小端存储模式;如果值为 0,则该机器数据存储模式为大端存储模式。

3、考点总结

  • 数据的存储模式
  • 大端存储模式
  • 小端存储模式

相关内容

热门资讯

今日盘点“山西扣点点透视挂教程... 今日盘点“山西扣点点透视挂教程”!确实是有挂您好:山西扣点点可以开挂,确实是有挂的,咨询加微6378...
[重大通报]“鸿运茶馆到底有没... 亲,鸿运茶馆这个游戏其实有挂的,确实是有挂的,需要了解加客服微信【4579337】很多玩家在这款游戏...
[重大.通报]“ 来来新民麻将... 您好:来来新民麻将这款游戏可以开挂,确实是有挂的,需要软件加微信【6492366】,很多玩家在来来新...
分享实测“新猴王斗牛到底有没有... 您好:新猴王斗牛这款游戏可以开挂,确实是有挂的,需要软件加微信【6355786】,很多玩家在新猴王斗...
玩家实测“新金龙到底是不是有透... 您好:新金龙这款游戏可以开挂,确实是有挂的,需要软件加微信【6355786】,很多玩家在新金龙这款游...