在讨论字节序的时候,老师给了我们一个十六进制的字0A0B0C0D,为什么会是一个32位的字呢?
谢谢。
前言:
如果您的老师给出 000000000A0B0C0Dh ,答案会是什么?
好吧,@ergonaut 和 @kdbanman 提供的答案将产生 64 位。
你的问题:
为什么它会是一个 32 位的字?
您的讲师给出的值不一定必须是 32 位。它可以很容易地被认为是 64 位、128 位或任何其他从 28 位开始的东西。
这里重要的是最高有效数字的位置。
要找出将十六进制值 0A0B0C0Dh 转换为其二进制等效值 0000' 1 010'0000'1011'0000'1100'0000'1101b 并注意最左边的1占据第 28 位。记住位编号从右开始!
现在由于 28 位显然不适合 16 位字,我们选择下一个更高的格式,即 32 位。
将此逻辑应用于我的序言中的值也将导致一个 32 位数字,这是正确的答案。在对数字进行分类时,我们不考虑任何前导零!
0A0B0C0D 是二进制的 0000/1010/0000/1011/0000/1100/0000/1101,因为每个十六进制由 4 位表示。因此,如果将它们全部计算在内,您总共会得到 32 位。
有 8 个十六进制数字,每个十六进制数字为 4 位,8*4 = 32 位。
您的特定单词如下所示:
0000 1010 0000 1011 0000 1100 0000 1101
0 A 0 B 0 C 0 D