大端小端问题
来源:互联网 发布:金克丝神龙烈焰淘宝 编辑:程序博客网 时间:2024/05/17 01:56
#include <iostream>using namespace std;union{int i;char c;}a;int main(){a.i = 0x01;if (a.c == 1){cout<<"Little Endian"<<endl;}else{cout<<"Big Endian"<<endl;}system("pause");return 0;}
嵌入式系统开发者应该对Little-endian和Big-endian模式非常了解。采用Little-endian模式的CPU对操作数的存放方式是从低字节到高字节,而Big-endian模式对操作数的存放方式是从高字节到低字节。例如,16bit宽的数0x1234在Little-endian模式CPU内存中的存放方式(假设从地址0x4000开始存放)为:
内存地址
0x4000
0x4001
存放内容
0x34
0x12
而在Big-endian模式CPU内存中的存放方式则为:
内存地址
0x4000
0x4001
存放内容
0x12
0x34
32bit宽的数0x12345678在Little-endian模式CPU内存中的存放方式(假设从地址0x4000开始存放)为:
内存地址
0x4000
0x4001
0x4002
0x4003
存放内容
0x78
0x56
0x34
0x12
而在Big-endian模式CPU内存中的存放方式则为:
内存地址
0x4000
0x4001
0x4002
0x4003
存放内容
0x12
0x34
0x56
0x78
联合体union的存放顺序是所有成员都从低地址开始存放,面试者的解答利用该特性,轻松地获得了CPU对内存采用Little-endian还是Big-endian模式读写。
- 大端,小端问题
- 大端小端问题
- 大端小端问题
- 大端,小端问题
- 大端小端问题
- 大端小端问题
- 大端小端问题
- 大端小端问题
- 大端小端问题
- 大端小端问题
- 大端和小端问题
- 大端、小端问题详解
- 判断大端小端问题
- 大端和小端的问题
- 栈增长和大端/小端问题
- 程序判断大端小端问题
- 网络序、大端与小端问题
- 栈增长和大端/小端问题
- 实现服务器端的多线程SOCKET Server C++/VC
- ISO 用 Xib 制作UITableView 和 UITableViewCell
- socket服务器端(c++)
- OpenCV 卡尔曼滤波器的使用
- oracle group by
- 大端小端问题
- 输入输出流中 InputStream read方法 和 OutputStream write 方法的理解
- objective-c 内存自动释放(1)
- 谈谈android数据存储方式
- linux内核机制中的中断
- chapter05--车辆,乡村用水,一元二次方程的根,电视频道
- iOS7 uilabel 自动换行,文字自适应
- 快速搭建Android NDK环境
- 应用360云盘与SVN版本管理服务器搭建基于云端的版本控制软件