| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 672 人关注过本帖
标题:关于字节序的问题
只看楼主 加入收藏
howema
Rank: 1
等 级:新手上路
帖 子:336
专家分:0
注 册:2005-10-4
结帖率:50%
收藏
 问题点数:0 回复次数:5 
关于字节序的问题
如何知道一台机器的字节序?是大端在前还是小端在前?
搜索更多相关主题的帖子: 字节序 机器 大端 
2006-12-06 18:10
howema
Rank: 1
等 级:新手上路
帖 子:336
专家分:0
注 册:2005-10-4
收藏
得分:0 
没人知道吗?
2006-12-06 21:58
kelifei
Rank: 1
来 自:UESTC
等 级:新手上路
帖 子:89
专家分:0
注 册:2006-5-11
收藏
得分:0 
int kelifei=100;
char *p;
p= &kelifei;
for(int i=0;i<2;i++)
printf("%d",p[i]);

-DFAE -DESS -DDVD -DMTK  -DDVR -DDECODE -DMSTAR -DPMP我决定在论坛潜水3年又3年!
2006-12-06 22:16
perfect
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:81
专家分:0
注 册:2006-11-19
收藏
得分:0 
如果int不是2个字节呢
还应该先测试整型占几个字节

片言可以明百意 坐驰可以役万里
2006-12-07 10:04
young
Rank: 3Rank: 3
等 级:论坛游侠
威 望:2
帖 子:223
专家分:160
注 册:2004-9-5
收藏
得分:0 
大端模式(big endian)和小端模式(little endian)指的是数据在计算机体系的存储模式,由于存在众多的芯片体系,如x86, power pc, arm等等,由于各个厂家对数据存储的规定不一样,故如果代码从一个系统移植到另一个系统时有可能遇到模式混乱的问题。
例如用一个字长表示1,Intel体系是采用小端模式的,存储为00000000,00000001,低字节放在低地址位;若体系采用的是大端模式,则存储为00000001,00000000,低字节放在高地址位。
了解这一点后,就不难用c语言通过对低字节的强制转换实现对大端小端的判断了。

unsigned int nTest = 0x11223344;

char *p = (char*)&nTest;

if(*p == 0x44)
printf("small mode");
else
printf("big mode");


如果你爱C语言,请你爱指针; 如果你爱指针,请你爱指针的指针;
2006-12-07 11:28
howema
Rank: 1
等 级:新手上路
帖 子:336
专家分:0
注 册:2005-10-4
收藏
得分:0 
ths !
2006-12-08 10:17
快速回复:关于字节序的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015925 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved