N个十六进制数字对应多少位?

问题描述

答案并没有那么简单。我知道通常 1 个十六进制数字映射到 4 位,但这甚至不是真的。如果 MSB(最左边)是 0,会发生什么? 网上我注意到这个字符串有时转换为476位,有时转换为478位,有时转换为480位?你如何转换它?为什么?它的长度为 120 位。谢谢你。 02012B1530A6E3958A98530031902003876940000000000CDF9844173BE512AFFFFFFE11DBBA1F00079387800E13012E11FC0F00000000000000000000000000000000000000100

解决方法

确实,一个十六进制数字对应于 4 位。 所以你只是隐蔽

  • 0 => 0000
  • ...
  • f => 1111

当您使用给定的数字执行此操作时,它以 0000 0010 开头。与十进制数字一样,可以根据需要删除或添加前导零,因此所有带有或多或少前导零的答案都是正确的。 十六进制和二进制只是其他数字系统,如十进制。

在整数的情况下,您通常希望删除所有前导零、带有十进制数字的石灰。

但是当它是表示数据的字节或位数组时,您会保留它们,因为 0 实际上表示值 0。

给出 480 结果的 Ihr 计算器可能会将其解释为字节或位数组,因此保留前导零。 476 似乎删除了前导十六进制零,然后最终保留了最多 3 个前导二进制零。不知道你会如何得到 478 位数字。

但是,公共输出应该有 480 或 474 位数字,具体取决于是保留所有零还是不保留所有零。其他一切都没有真正的意义,但它在技术上并没有错。