关于位:

关于位:

我将向一小群人讲授计算机中的数字系统,并想知道十进制系统中每个数字有多少位,例如:

  • 十六进制(基数 16)- 4 位
  • 八进制(基数 8)- 3 位
  • 二进制(基数 2)- 1 位
  • 十进制(基数 10)-?

答案1

您正在寻找的是 2 为底的 10 的对数,它是一个约为 3.32192809489 的无理数......

不能使用整数位数表示十进制数字,这是许多在十进制系统中很容易表示的分数(例如 1/5 或 0.2)在二进制中无法(不是很难:真的不可能)表示的根本原因。这在评估浮点算术中的舍入误差时很重要。

答案2

换句话说,这些系统中一个数字包含多少信息。

对于 2 进制、4 进制、8 进制、16 进制和其他 2 N进制,答案是显而易见的,因为在 2 N进制中,每个数字都可以用 N 位数字来表示。

如何通过 2 N 得到 N 您可以使用以 2 为基数的对数,它是指数的逆。

  • log 2 2 = 1 (以 2 为基数,每位数字 1 位)
  • log 2 4 = 2 (以 4 为基数,每位 2 位)
  • log 2 8 = 3 (以 8 为基数,每位数字 3 位)
  • log 2 16 = 4 (以 16 为基数,每位数字 4 位)

不是 K 幂的 K 基数对数不是基数。具体来说:

  • 对数 10=3.321928094887362347870319429489390175864831393024580612054…

这个数字可能看起来令人困惑,但它实际上有一些用途。例如,它是一个一位十进制数字。

不过,就您的情况而言,我认为这个值没有任何用处。@Christian 的回答很好地解释了原因。

答案3

关于位:

很遗憾,这个问题是错误的。你不会以那种方式使用比特。一个位是一个二进制数字。您可以将十进制数 10 转换为二进制 1010(8+2),因此需要 4 位来表示十进制值 10。


2 的幂

您陷入了一个陷阱,使用二进制(2)、八进制(8)和十六进制(16)作为示例,因为这些都是 2 的幂,因此您可以从位的角度来考虑它们,而 10 不是 2 的幂,所以这样不太好用。

答案4

使用位意味着 2 的幂,因此,正如其他人所说,您无法轻松地将 10 位转换为字节而不会造成浪费。一种常见的解决方案是使用 4 位作为十六进制,并浪费 AF 表示的 6 个状态。有趣的是使用它进行十进制数学运算 - 它并不简洁。

一个有用的教学想法可能是比较米老鼠如何开发计数系统,因为他每只手只有 4 个手指 - 这自然导致了八进制系统。

相关内容