【发布时间】:2013-10-09 17:41:20
【问题描述】:
谁能帮我理解以下文字:
双字节顺序
由十六进制表示(st uv wx yz)表示的数值应为 记录在一个八字节的字段中为(yz wx uv st st uv wx yz)。
注意: 例如,十进制数 305419896 的十六进制为 (12 34 56 78) 表示并记录为 (78 56 34 12 12 34 56 78)。
这对于读取值意味着什么?我是否只是将 32 位作为uint32 获得,仅此而已,还是我需要转换某些内容才能获得正确的值?还是我只从 8 字节字段中提取 4 字节以获得值?
编辑: 这在这样的工会中可行吗?
union test
{
uint64 fullValue;
uint8 FirstFourBytes[4];
uint8 SecondFourBytes[4];
}
然后我访问 SecondFourBytes 数组以获取正确的值。
【问题讨论】:
-
使用联合,数组重叠。它们不会叠加,因此 FirstFourBytes 和 SecondFourBytes 将包含完全相同的数据。
标签: c endianness