大端模式和小端模式的判别
2016-01-30 17:21
323 查看
在计算机系统中,我们是以字节为单位的,每个字节8bit,对于多位数据,如16bit,32bit,就要用多个寄存器,而存放顺序分两种:大端模式(Big-Endian)和小端模式(Little-Endian)。常用的X86结构是小端模式,大部分ARM,DSP都为小端模式。计算机网络传输使用的是大端模式。
例子:
存放数据0x 12 34 56 78,大端模式如下:
大端模式的存储方式是数据高位放低地址位,低位放高地址位。
小端模式如下:
小端模式的存储方式是数据高位放高地址位,数据低位放低地址位。
大端模式和小端模式两种存储方式区别在于大端模式更贴近人的阅读习惯,而小端模式更贴近机器思想。
联合体存储数据是由内存的低位开始存起,而且联合体内变量公用存储空间,可以通过这个特性来判断CPU工作的模式。
例子:
存放数据0x 12 34 56 78,大端模式如下:
地址 | 数据 |
0x00 | 0x12 |
0x01 | 0x34 |
0x02 | 0x56 |
0x03 | 0x78 |
小端模式如下:
地址 | 数据 |
0x00 | 0x78 |
0x01 | 0x56 |
0x02 | 0x34 |
0x03 | 0x12 |
大端模式和小端模式两种存储方式区别在于大端模式更贴近人的阅读习惯,而小端模式更贴近机器思想。
联合体存储数据是由内存的低位开始存起,而且联合体内变量公用存储空间,可以通过这个特性来判断CPU工作的模式。
void BigOrLittle() { union w { int a; char b; }check; check.a = 1; if (check.b == 1) { cout << "CPU是小端模式。" << endl; } else { cout << "CPU是大端模式。" << endl; } }
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- 关于指针的一些事情
- 应用领航:盘点那些年我们一起追过的OS
- 无奇不有!盘点各国自己开发的操作系统
- c++ primer 第五版 笔记前言
- share_ptr的几个注意点
- Lua中调用C++函数示例
- Lua教程(一):在C++中嵌入Lua脚本
- Lua教程(二):C++和Lua相互传递数据示例
- 可自定义oem的萝卜家园 Ghost XP 新春装机版 V200801 下载
- C#实现判断操作系统是否为Win8以上版本
- C++联合体转换成C#结构的实现方法
- C++高级程序员成长之路
- C++编写简单的打靶游戏
- C++ 自定义控件的移植问题
- C++变位词问题分析
- C/C++数据对齐详细解析
- C++基于栈实现铁轨问题
- C++中引用的使用总结
- 使用Lua来扩展C++程序的方法