我必须编写一个例程来在两种表示形式之间进行转换。
但我有点困惑。
如果我有一个内存为 32 位字的架构
我必须存储字 0xA15D23B1
使用 Big-endian 时,内存在 23 之后的 5D 之后变为 A1,最后变为 B1
使用 Little-endian 时,内存在 23 之后、5D 之后和 A1 之后是 B1
这样对吗?
如果我可以寻址我的机器上的各个字节并且我的字的地址为零
字节1是谁?
大尾数中是5D?在小尾数中也是 5D 吗?
感谢所有愿意回答我的人
大尾数法内存布局首先是最高有效字节,而小尾数法布局首先是最低有效字节。给定值 0xA15D23B1:
Memory address 0 1 2 3
Big-endian A1 5D 23 B1
Little-endian B1 23 5D A1
请注意,大端存储布局不会随字大小而变化,但小端存储布局会变化。如果考虑两个短字(16 位),0xA15D 和 0x23B1 连续存储:
Memory address 0 1 2 3
Big-endian A1 5D 23 B1
Little-endian 5D A1 B1 23
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)