【问题标题】:Number of bits required to store unsigned Int存储 unsigned Int 所需的位数
【发布时间】:2016-01-06 18:05:10
【问题描述】:

我需要知道存储无符号整数所需的最小位数的正确解决方案是什么。说,我有 403 它的二进制表示为无符号整数将是 00000000000000000000000110010011 加起来为 32 位。现在,我知道一个无符号整数需要 32 位来存储。但是,当数字只能用 9 位 110010011 来解释时,为什么前面有所有这些零。此外,为什么 unsigned int 需要 32 位来存储而十进制只需要 8 位? 请详细说明。谢谢

【问题讨论】:

标签: binary numbers byte unsigned bits


【解决方案1】:

这与需要多少位无关,而与您的计算机连接多少位(32)有关。虽然 9 位就足够了,但您的计算机具有 32 位宽的数据通道 - 它的物理连接可以有效地处理 32、64、128 等。而且您的编译器可能会为您选择 32 位。

“403”的十进制表示是三位数字,用二进制表示每个数字至少需要四位(2^4是16,所以你有6个备用代码);所以“403”的最小“十进制”表示需要 12 位,而不是 8 位。

但是,要表示普通字符(包括十进制数字以及字母、标点符号等),通常使用 8 位,最多允许 2^8 或 256 个可能的字符。用这种方式表示,需要 3x8 或 24 个二进制位来表示 403。

【讨论】:

  • 那么,我们不能简单地添加位的值,因为每个值需要 4 位来表示?所以要存储的最小位数将取决于数字中的数字,而不是数字是无符号整数还是十进制?谢谢
  • 当构建一个二进制数时,每一位都会使可能的组合数量翻倍。 3 位编码 8 种可能性(对于十进制数字来说不够),但 4 位编码 16。但是,您的计算机并没有真正使用原始二进制编码。由于其布线,它可以有效地使用 8 位或 32 位(或更多)编码,而不是任意大小。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-08-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多