计算机常见的高进制为什么是 8 、16 呢?

为什么没有 3 4 5 6 32 64 进制呢?
或者说为什么选用 8 和 16 这两个特殊的数字呢?

阅读 1.2k
avatarAI BotBETA

计算机常见的高进制为什么是8、16

在计算机科学中,虽然二进制是基础的数值表示方式(因为计算机内部的电路只有两种状态:通电和断电,分别代表二进制的1和0),但在某些场景下,使用八进制(octal)和十六进制(hexadecimal)更为方便和直观。以下是选用8和16这两个特殊数字作为高进制的主要原因:

八进制(Octal)

表示方式

  • 八进制使用八个不同的数字(0-7)来表示数值,这在某些情况下提供了一种方便的表示方式。

实际应用

  • 计算机中的八进制:虽然计算机内部使用二进制来处理数据,但在某些情况下,使用八进制来表示二进制数字更为方便。例如,一个八进制数字可以代表三个二进制数字。
  • Unix文件权限:在Unix操作系统中,文件权限使用八进制表示。
  • 色彩编码:在Web设计中,八进制也用于表示颜色编码。

兼容性

  • 八进制为某些计算机系统提供了方便的二进制字缩写大小,如PDP-8、ICL 1900和IBM大型机使用12位、24位或36位,他们的最理想的二进制字缩写大小能被3整除(每个八进制数字代表三个二进制数字)。

十六进制(Hexadecimal)

可读性

  • 十六进制的数位可以表示四个二进制位,使得大量的二进制数据能够以更简洁和可读的方式表示。例如,一个十六进制数FF可以表示11111111(二进制),这在阅读和理解时更为直观。

应用广泛性

  • 十六进制在计算机科学中非常常用,特别是在汇编语言和低级编程中。此外,图像处理、数据库存储、数字化学等其他领域也广泛应用十六进制。

兼容性

  • 由于十六进制与二进制之间的转换相对简单,且十六进制数的表示方式紧凑,它成为了计算机内部数据存储和传输的一种有效方式。

为什么没有3、4、5、6、32、64进制呢?

  • 二进制(Base-2):由于计算机内部电路的两种状态(通电和断电),二进制是计算机最自然的数值表示方式。
  • 八进制(Base-8):每个八进制数字可以方便地表示三个二进制数字,这在某些场景下提供了便利。
  • 十六进制(Base-16):每个十六进制数字可以表示四个二进制数字,进一步提高了数据的可读性和表示效率。
  • 其他进制:对于3、4、5、6等进制,它们并不能像八进制和十六进制那样直接映射到二进制数字的固定数量,因此在表示和转换上没有八进制和十六进制那么直观和方便。而32和64进制则因为表示和转换的复杂性以及缺乏实际应用场景,所以在计算机中并不常见。
2 个回答

计算机内部用的是2进制。所有2的幂进制都是可以对应固定的二进制位数的,比如一位4进制数对应2位二进制数,一位8进制数对应3位2进制数,一位16进制数对应4位2进制数。它们与二进制的相互转换也是比价简单的。

非2的幂进制就没有这个好处了,与二进制之间的转换也会很复杂。

使用的更好的进制,是为了表示更短,更紧凑。但是使用的数字也越多。8进制有8个数字,16进制有16个数字。但是键盘的可以使用的符号(数字、字母、符号等)是有限的。

只使用数字符号(10个),最多可以表示8进制。
只使用数字与字母(36个,不区分大小写),最多可以表示32进制。
只使用数字与字母(62个,区分大小写),最多也是可以表示32进制。

但是,当一个数字中有大量字母的时候,对人来说记住字母与数字的对应关系就变成了一件困难的事情。(注意,这些进制都是用于给人阅读与书写的)32进制需要额外记住22个对应关系,是很不方便的。而16进制只需要额外6个对应关系,就比较简单了。


在不考虑人的阅读与书写的地方,是有利用更高的进制的,比如 base32 / base64 编码,本质上用的就是 32/64 进制。base64 编码除了使用了所有数字与大小写字母之外,还另外使用了几个其他符号来凑够 64 个数字。

八进制和十六进制本质上还是二进制的扩展。事实上不仅有其他进制,效率上来说也并不是二进制最高,实际生产出来的其他进制的计算机也是有的,比如前苏联科学家就研制出了三进制计算机并且量产了。其他进制的计算机没有流行起来的原因有很多,我觉得你可以看看这个视频:
苏联的三进制电脑,为什么被二进制干掉了

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏