大端 小端
想看看苹果系统的数据存储是大端存储还是小端存储:
首先小端,就是把低位存放在低地址。如0x 12345678,这个32位的十六进制数,从高位到低位依次是 0x 12, 0x 34,0x 56,0x 78;采用小端方式:最低为 0x 78 在最前面,故而内存中从低地址到高地状依次是0x 78,0x 56, 0x 34, 0x 12;
大端方式亦然。比较符合人的理解,高位在内存中的低地址,故而内存中从低地址到高地状依次是0x 12,0x 34, 0x 56, 0x 78;
很简单,写一个union ,联合里的数据类型公用一块内存,不同时间只能有一种数据类型,我们定义一个包含int 类型和char 类型的联合,给它赋值一个int i = 1;然后查看char 类型的ch 的值,如果是小端方式存储,内存中从低地址到高地状依次(0x 01,0x 00,0x 00,0x 00),那么,char 类型的ch 截取低地址的0x 01。反之,大端内存中从低地址到高地状依次(0x 00,0x 00,0x 00,0x 01),会截取到 低地址的0x 00;
地址偏移
大端模式 小端模式
0x00 12(OP0) 78(OP3)
0x01 34(OP1) 56(OP2)
0x02 56(OP2) 34(OP1)
0x03 78(OP3) 12(OP0)
1 //判断系统大小端存储的方法 2 int checkSystem() { 3 union check{ 4 int i; 5 char ch; 6 } c; 7 c.i = 1; 8 return (c.ch == 1);// 0x 01 00 00 00 9 } 10 int main(int argc, const char * argv[]) { 11 int check = checkSystem(); 12 if (check == 1) { 13 printf("小端模式存储\n");// 14 }else { 15 printf("大端模式存储\n"); 16 } 17 18 return 0; 19 }
结果发现苹果采用小端方式存储数据。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具