大小端模式
2016-05-06 22:54
204 查看
1.小端模式:是指数据的高字节保存在内存的高地址中,而数据的低字节保存在内存的低地址中.
2.大端模式:是指数据的高字节保存在内存的低地址中,而数据的低字节保存在内存的高地址中.
3.大小端CPU字节序:32位宽的十六进制数0x12345678在小端模式的存放方式(假设从地址0x1000开始存放)为:
而在大端模式的存放方式为:
4、判断大小的的两种方法:1:共用体 2:指针类型转换
<1>共用体:
注:联合体union的存放顺序是所有成员都从低地址开始存放;
<2>指针类型转换
5、一般操作系统都是小端,而通信协议是大端。
属于小端的机器: x86 、 DEC
属于大端的机器:PowerPC、IBM、Sun
ARM既可以工作在大端模式,也可以工作在小端模式。
2.大端模式:是指数据的高字节保存在内存的低地址中,而数据的低字节保存在内存的高地址中.
3.大小端CPU字节序:32位宽的十六进制数0x12345678在小端模式的存放方式(假设从地址0x1000开始存放)为:
内存地址 | 0x1000 | 0x1001 | 0x1002 | 0x1003 |
存放内容 | 0x78 | 0x56 | 0x34 | 0x12 |
内存地址 | 0x1000 | 0x1001 | 0x1002 | 0x1003 |
存放内容 | 0x12 | 0x34 | 0x56 | 0x78 |
<1>共用体:
union M { int a; char b; } m; int Judge_Order( ) { m.a = 1; return (m.b ==1); }
注:联合体union的存放顺序是所有成员都从低地址开始存放;
<2>指针类型转换
int Judge_Order( ) { int i=0x1234; char *p=(char *)&i; if(*p==0x12) return 1; else return 0; }
5、一般操作系统都是小端,而通信协议是大端。
属于小端的机器: x86 、 DEC
属于大端的机器:PowerPC、IBM、Sun
ARM既可以工作在大端模式,也可以工作在小端模式。
相关文章推荐
- linux命令(42):wc命令
- 浅谈Spring事务隔离级别
- 浅谈Spring事务隔离级别
- 浅谈Spring事务隔离级别
- 浅谈Spring事务隔离级别
- 浅谈Spring事务隔离级别
- 如何开发优秀的库代码
- Jmeter之JDBC请求(四)
- linux命令(41):watch命令
- 如何使用Google Map API开发Android地图应用
- WinCE及Windows软件开发相关书籍转让
- span是条而不是块
- Android测试之旅之JUnit(二)
- 图片加载及缓存框架Glide在安卓开发中的应用
- Bug总结
- 把NDK的工具链提取出来单独使用
- 数据持久层核心架构
- android:ToolBar详解(手把手教程)
- 拓扑数据分析在机器学习中的应用
- classload之java程序入口sun.misc.Launcher源码分析