本机大端/小端模式测试及解释
来源:互联网 发布:英语写作课程知乎 编辑:程序博客网 时间:2024/05/16 16:06
测试程序代码: #include <stdio.h> void checkCPUendian(); int main() void checkCPUendian() c.i = 0x12345678; printf("%s/n", (0x12 == c.s[0]) ? "大端模式" : "小端模式"); 我的解释: 我们知道,联合体的不同成员在内存中空间是重叠所以…… 而对于小端模式,数据最小有效位存储在最低地址,则 i 在内存中存储如下: 因此,如果c.s[0]的值为0x12,则说明机器为大端模式,否则为小端模式
{
checkCPUendian();
return 0;
}
{
union{
unsigned int i;
unsigned char s[4];
}c;
}
给联合变量c的第一个成员(无符号整型i,占4个字节)赋值
c.i = 0x12345678;
对于大端模式,数据最高有效位存储在最低地址,因此 i 在内存中存储如下:
__________________________
低地址 | 12 | 34 | 56 | 78 | 高地址
------------------------------------------
对照着字符数组各元素的值就是:
c.s[0] = 0x12
c.s[1] = 0x34
c.s[2] = 0x56
c.s[3] = 0x78
__________________________
低地址 | 78 | 56 | 34 | 12 | 高地址
------------------------------------------
那么字符数组各元素值变成:
c.s[0] = 0x78
c.s[1] = 0x56
c.s[2] = 0x34
c.s[3] = 0x12
转自:http://wxxweb.blog.163.com/blog/static/135126900201031464811141/
- 本机大端/小端模式测试及解释
- 什么是“大端”和“小端”及一段测试本机大端还是小端的代码
- 大端及小端模式
- 大端及小端模式
- 什么是大小端模式,写个程序判断本机是大端还是小端模式
- 测试本机的数据存储形式——大端还是小端
- 大端小端的解释
- 大端、小端模式
- 大端小端模式
- 大端小端模式
- 大端小端模式
- 大端小端模式
- 大端小端模式
- 大端小端模式
- 大端、小端 模式
- 小端大端模式
- 大端小端模式
- 大端-小端模式
- mysql中的表显示“使用中”解决办法!
- mysql 数据库中常用的sql语句
- 数据库主键/外键设计之思考
- hadoop 搭建
- vc之内存操作函数
- 本机大端/小端模式测试及解释
- jQuery基础资料
- ubuntu 10.4 下安装samba
- 谈谈RGB、YUY2、YUYV、YVYU、UYVY、AYUV
- PHP我来了!!!
- google的jsapi如何精确匹配
- java.sql.Timestamp的使用
- VS2010无法选择NET Framework 2.0和3.5解决方案
- V4L2 和 YUV