【发布时间】:2014-10-05 15:50:43
【问题描述】:
我必须编写一个例程来在两种表示之间进行转换。 但我有点困惑。 如果我的架构具有 32 位字的内存 我必须存储单词 0xA15D23B1 使用 Big-endian,内存在 23 后 5D 后变为 A1,最后变为 B1 与 Little-endian 相比,记忆是 B1 后 23 后 5D 和 A1 后 这样对吗?
如果我可以寻址我机器上的单个字节并且我的单词地址为零 谁是字节 1? Big-endian 是 5D?小端也是5D?
感谢所有回答我的人
【问题讨论】:
-
不,这不对,你搞反了。在 little endian 中,最低有效字节具有最低地址。
-
你的第一段是正确的,除了“之后”这个词的不正确使用,这使它有点混乱(我认为你的意思是“跟随”而不是“之后”)。我不明白你在第二段中问什么。
-
您已经回答了您的问题。 “B1 之后 23 之后 5D 之后和 A1 之后。”你能描述一下你实际的编程问题吗?地址零通常对程序不可用。您可以使用 hton 之类的函数来避免完全处理字节序问题。
-
(另外,这与通用列表有什么关系?)
-
您的编程需求是什么?你想从小端转换为大端还是反之?
标签: c endianness