找回密码
 注册
搜索
查看: 2668|回复: 13

[讨论] 一道面试题:如何知道当前系统是大端模式还是小端模式?

[复制链接]
发表于 2006-2-23 09:54:00 | 显示全部楼层 |阅读模式
用C语言实现
发表于 2006-2-23 10:46:00 | 显示全部楼层
<P>unsigned int  nTest = 0x12345678;</P><P>char *p = (char*)&amp;nTest;</P><P>if(*p == 0x12)</P><P>大头;</P><P>else</P><P>小头;</P><P>请问是哪个公司的?</P>[br]<p align=right><font color=red>+3 RD币</font></p>
点评回复

使用道具 举报

发表于 2006-2-23 14:06:00 | 显示全部楼层
<P>In little endian format,the least significant byte is the lowest address.</P><P>In big endian format,the most significant byte is at the lowest address </P>
点评回复

使用道具 举报

发表于 2006-2-24 21:00:00 | 显示全部楼层
<P>[em07],什么是大端和小段模式?</P>
点评回复

使用道具 举报

发表于 2006-3-24 17:55:00 | 显示全部楼层
大端模式(big endian)和小端模式(little endian)指的是数据在计算机体系的存储模式,由于存在众多的芯片体系,如x86, power pc, arm等等,由于各个厂家对数据存储的规定不一样,故如果代码从一个系统移植到另一个系统时有可能遇到模式混乱的问题。
       例如用一个字长表示1,Intel体系是采用小端模式的,存储为00000000,00000001b,低字节放在低地址位;若体系采用的是大端模式,则存储为00000001,00000000b,低字节放在高地址位。
       了解这一点后,就不难用c语言通过对低字节的强制转换实现对大端小端的判断了。
word one = 1;
if (one == (char*)one)
    //it is little endian;
else
  //it is big endian;[br]<p align=right><font color=red>+3 RD币</font></p>
点评回复

使用道具 举报

发表于 2006-3-27 23:40:00 | 显示全部楼层
<P>谢谢楼上通俗易懂的解释.</P>
点评回复

使用道具 举报

发表于 2006-4-1 12:37:00 | 显示全部楼层
<P>谢谢指导</P>
点评回复

使用道具 举报

发表于 2006-4-18 21:59:00 | 显示全部楼层
Big Endian &amp; Little Endian
点评回复

使用道具 举报

发表于 2006-4-19 11:23:00 | 显示全部楼层
<P>受益了。谢谢</P>
点评回复

使用道具 举报

发表于 2006-4-24 11:42:00 | 显示全部楼层
<P>one == (char*)one   不用要*吧</P>[em14]
点评回复

使用道具 举报

发表于 2006-4-25 08:39:00 | 显示全部楼层
<P>one == (* (char*)one ), *是要是考慮可能會產生符號問題吧。</P>
点评回复

使用道具 举报

发表于 2006-4-28 08:45:00 | 显示全部楼层
<P>word one = 1;
if (one == (char*)one)
    //it is little endian;
else
  //it is big endian;
</P><P>one==(char)one</P><P>吧</P>[br]<p align=right><font color=red>+3 RD币</font></p>
点评回复

使用道具 举报

发表于 2006-4-30 22:35:00 | 显示全部楼层
<P>int test()</P><P>{</P><P>union</P><P>{</P><P>char a[2];</P><P>int b;</P><P>}xx;</P><P>xx x;</P><P>x.b = 0x0001;</P><P>if(x.a[0] == 0x01)</P><P>return 1;//小端</P><P>else</P><P>  return 0;//大端</P><P>}</P>
点评回复

使用道具 举报

发表于 2006-5-22 10:39:00 | 显示全部楼层
楼主讲的很好啊啊  我很受启发[em01]
点评回复

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies

本版积分规则

Archiver|手机版|小黑屋|52RD我爱研发网 ( 沪ICP备2022007804号-2 )

GMT+8, 2024-12-23 14:40 , Processed in 0.050609 second(s), 16 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表