首页 > 解决方案 > 关于大端与小端的问题

问题描述

因此,我在斯坦福大学上在线网络课程时遇到了一个问题,测验后提供了答案并附有解释,但我仍然不明白。

问题是,将16 位 53 视为 0x3500(从 dec 到 hex)。这个十六进制值是用 Little Endian 还是 Big Endian 写的?我的答案是 Big Endian,但正确的答案是 Little Endian。

在解释中,他说533x16 + 5,所以我们得到0x35

对我来说,3代表第一个字节128:0 | 64:0 | 32:1 | 16:1

5代表第二个字节8:0 | 4:1 | 2:0 | 1:1

而且由于第一个字节是先写入的(3 在 5 之前)并且它具有更大的值(最重要),那不应该被视为 Big Endian 而不是 Little Endian 吗?

我相信我的解释中一定有一些误解,所以请随时指出。

标签: binaryhexdecimalendianness

解决方案


16 位二进制中的 53 是 0000000000110101

二进制的 0x3500 是 0011010100000000

由于最低有效字节位于最低地址,因此它是小端。这里的误解是您只考虑字节的一半(4 位)而不是完整的字节(8 位)。


推荐阅读