详解大端模式和小端模式
来源:互联网 发布:3ds max模型导出优化 编辑:程序博客网 时间:2024/06/05 05:20
一, 什么是大端和小端
Big-Endian和Little-Endian的定义如下:
1) Little-Endian就是低位字节排列在内存的低地址端,高位字节排放在内存的高地址端
2) Big-Endian就是高位字节排放在内存的低地址端,低位字节排放在内存的高地址端
举一个简单的例子, 比如数字0x12 34 56 78在内存中的表示形式为:
二,
数组在大端小端情况下的存储:
以unsigned int value = 0x12345678为例,分别看看在两种字节序下其存储情况,我们可以用unsigned char buf[4]来表示value:Big-Endian: 低地址存放高位,如下:
高地址
---------------
buf[3] (0x78) -- 低位
buf[2] (0x56)
buf[1] (0x34)
buf[0] (0x12) -- 高位
---------------
低地址
Little-Endian: 低地址存放低位,如下:
高地址
---------------
buf[3] (0x12) -- 高位
buf[2] (0x34)
buf[1] (0x56)
buf[0] (0x78) -- 低位
--------------
低地址
三, 如何判断机器的字节序
如下编写一个小的测试程序来判断机器的字节序:
联合体union的存放顺序是所有成员都从低地址开始存放,而且所有成员公有一块最大的存储空间,
利用该特性可以轻松的获得CPU对内存采用Little-endian还是Big-endian模式都写。
若处理器是Big-Endian的,则返回0;若是Little-Endian的,则返回1
int CheckCPUEndian(){{union w{int a;char b;}num;num.a = 1;return (num.b == 1);}}
阅读全文
0 0
- 详解大端模式和小端模式
- 详解大端模式和小端模式
- 详解大端模式和小端模式
- 详解大端模式和小端模式
- 详解大端模式和小端模式
- 详解大端模式和小端模式
- 详解大端模式和小端模式
- 详解大端模式和小端模式
- 详解大端模式和小端模式
- 详解大端模式和小端模式
- 详解大端模式和小端模式
- 详解大端模式和小端模式
- 大端模式和小端模式详解
- 详解大端模式和小端模式 .
- 详解大端模式和小端模式
- 详解大端模式和小端模式
- 详解大端模式和小端模式
- 详解大端模式和小端模式
- 堆排序
- 内部类
- 洛谷10月月赛R1·浴谷八连测R1·提高组:SAC E#1
- java数据类型
- ActiveMQ五种消息类型生产消费
- 详解大端模式和小端模式
- 提高代码阅读能力的7种方法
- tensorflow中高级函数Experiment,Estimator,EstimatorSpec,DataSet
- C语言中的注释方法
- Locust的API介绍-----ResponseContextManager类InterruptTaskSet Exception及Event hooks
- python读取TXT文件并逐行写入另外一个TXT文件
- oracle archivelog 的删除
- Eigendecomposition, SVD and PCA
- 小编的几年工作中,服务器发展之路