Linux系统是big_edian还是little-edian

眨巴眨巴 2010-05-21 11:24:28
问题有点弱智,x86 + Windows用惯了
big-edian 还是 little-edian 由CPU决定还是由操作系统决定的?

AMD处理器是little还是big?thank you
...全文
241 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
眨巴眨巴 2010-05-21
  • 打赏
  • 举报
回复
我要写个程序,我想让它在小端和大端系统上都能正确执行,应该怎么做呢
beginsoft_nj 2010-05-21
  • 打赏
  • 举报
回复
字节序和硬件平台有关 不同平台 字节序不同。
十八道胡同 2010-05-21
  • 打赏
  • 举报
回复
有操作体统决定。。。
skyworth98 2010-05-21
  • 打赏
  • 举报
回复
由处理器决定
如果是x86,little endian
如果是power, big endian

[Quote=引用楼主 smfwuxiao 的回复:]
问题有点弱智,x86 + Windows用惯了
big-edian 还是 little-edian 由CPU决定还是由操作系统决定的?

AMD处理器是little还是big?thank you
[/Quote]
yzx714 2010-05-21
  • 打赏
  • 举报
回复
IA32是little的吧
  • 打赏
  • 举报
回复
cpu决定的.
windy_wu2001 2010-05-21
  • 打赏
  • 举报
回复
我们常说的字节序,就是指对于不同的架构的CPU来说,对于长度超过一个字节的数据类型,如int,short,对于big-endian来说,低地址的字节是高位,而对于little-endian来说,低地址的字节是低位,如对于0x12345678,它在Big-Endian以及Little-Endian的系统中内存中的存储方式如下图:

是不是只有字节序与big-endian和little-endian有关呢?位域是否也是大小端相关的呢?事实上位(bit)的操作也是和大小端相关的,不仅仅对于跨字节的位域定义(比如定义的位域变量占用14个bit,肯定要跨字节),对于单个字节内的位域定义也是和大小端相关的(参见Intel的《Endianness White Paper》)。位(bit)的顺序一般是和字节的顺序是一致的,也就是说,对于big-endian来说,低地址的字节是高位,同样靠近低地址的位是高bit;对于little-endian正好相反。我们可以从下面的图中更容易看到这一点:
对于0x72来说,在Big-Endian以及Little-Endian中bit的顺序如下:


如果是基于ARM 和PPC这种系统开发的,而这两个系统默认都是大端系统,AMD/INTER都是小端

24,854

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 工具平台和程序库
社区管理员
  • 工具平台和程序库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧