当前位置: 首页 > 知识库问答 >
问题:

操作系统 - 计算机常见的高进制为什么是 8 、16 呢?

公孙和怡
2024-06-27

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

共有3个答案

易嘉胜
2024-06-27

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

辛成周
2024-06-27

计算机内部用的是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 个数字。

琴元凯
2024-06-27

计算机常见的高进制为什么是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进制则因为表示和转换的复杂性以及缺乏实际应用场景,所以在计算机中并不常见。
 类似资料:
  • 计算机操作系统

  • 进程与线程 1. 进程 2. 线程 3. 区别 进程状态的切换 进程调度算法 1. 批处理系统 2. 交互式系统 3. 实时系统 进程同步 1. 临界区 2. 同步与互斥 3. 信号量 4. 管程 经典同步问题 1. 哲学家进餐问题 2. 读者-写者问题 进程通信 1. 管道 2. FIFO 3. 消息队列 4. 信号量 5. 共享存储 6. 套接字 进程与线程 1. 进程 进程是资源分配的基本单

  • 编译系统 静态链接 目标文件 动态链接 编译系统 以下是一个 hello.c 程序: // c #include int main() { printf("hello, world\n"); return 0; } 在 Unix 系统上,由编译器把源文件转换为目标文件。 // bash gcc -o hello hello.c 这个过程大致如下: 预处理阶段:处理以 # 开

  • 概述 进程管理 死锁 内存管理 设备管理 链接 参考资料 Tanenbaum A S, Bos H. Modern operating systems[M]. Prentice Hall Press, 2014. 汤子瀛, 哲凤屏, 汤小丹. 计算机操作系统[M]. 西安电子科技大学出版社, 2001. Bryant, R. E., & O’Hallaron, D. R. (2004). 深入理解

  • 必要条件 处理方法 鸵鸟策略 死锁检测与死锁恢复 1. 每种类型一个资源的死锁检测 2. 每种类型多个资源的死锁检测 3. 死锁恢复 死锁预防 1. 破坏互斥条件 2. 破坏占有和等待条件 3. 破坏不可抢占条件 4. 破坏环路等待 死锁避免 1. 安全状态 2. 单个资源的银行家算法 3. 多个资源的银行家算法 必要条件 互斥:每个资源要么已经分配给了一个进程,要么就是可用的。 占有和等待:已经

  • 基本特征 1. 并发 2. 共享 3. 虚拟 4. 异步 基本功能 1. 进程管理 2. 内存管理 3. 文件管理 4. 设备管理 系统调用 大内核和微内核 1. 大内核 2. 微内核 中断分类 1. 外中断 2. 异常 3. 陷入 基本特征 1. 并发 并发是指宏观上在一段时间内能同时运行多个程序,而并行则指同一时刻能运行多个指令。 并行需要硬件支持,如多流水线、多核处理器或者分布式计算系统。