八进制数系统
八进制数系统是一种数表示技术,其中基数为 8。这意味着只有 8 个符号或可能的数字值,分别是 0、1、2、3、4、5、6、7。它只需要 3 位来表示任何数字的值。八进制数通过添加 0o 前缀或 8 后缀来表示。
每个数字的位置都有一个权重,该权重是 8 的幂。八进制系统中的每个位置都比前一个位置重要 8 倍,这意味着八进制数的数值是通过将数字的每个数字乘以该数字出现的位置的值,然后将乘积相加来确定的。因此,它也是一种位置(或加权)数系统。
八进制数的表示
每个八进制数都可以使用仅 3 位来表示,每组位的值在 000(对于 0)和 111(对于 7 = 4+2+1)之间。八进制数的等效二进制数如下所示:
八进制数字值 | 二进制等效值 |
---|---|
0 | 000 |
1 | 001 |
2 | 010 |
3 | 011 |
4 | 100 |
5 | 101 |
6 | 110 |
7 | 111 |
八进制数系统类似于十六进制数系统。八进制数系统提供了一种方便的方法,可以将大型二进制数转换为更紧凑和更小的组,但是这种八进制数系统不太流行。
最高有效位 (MSB) | 八进制点 | 最低有效位 (LSB) | |||
---|---|---|---|---|---|
82 | 81 | 80 | 8-1 | 8-2 | 8-3 |
64 | 8 | 1 | 1/8 | 1/64 | 1/512 |
由于八进制数系统的基值为 8,因此数字的最大值为 7,不能超过 7。在这个数系统中,八进制点左侧的连续位置的权重分别为 80、81、82、83 等。类似地,八进制点右侧的连续位置的权重分别为 8-1、8-2、8-3 等。这称为 8 的基数幂。任何八进制数的十进制值都可以使用每个数字与其位置值的乘积之和来确定。
示例 1 - 数字 111 解释为
111 = 1x82+5x81+7x80 = 157
这里,最右边的位 7 是最低有效位 (LSB),最左边的位 1 是最高有效位 (MSB)。
示例 2 - 数字 65.125 解释为
65.125 =1x82+0x81+1x80+1x8-1=101.10
这里,最右边的位 0 是最低有效位 (LSB),最左边的位 1 是最高有效位 (MSB)。
示例 3 - 将十进制数 21 表示为八进制表示
(21)10=2x81+5x80=(25)8 So, decimal value 21 is equivalent to 25 in Octal Number System.
八进制数系统的应用
八进制数不像以前那么常见了。但是,当一个字中的位数是 3 的倍数时,会使用八进制。它还用作表示 UNIX 系统上的文件权限以及 UTF8 数字等的简写。
优点和缺点
使用八进制数的主要优点是它使用的数字比十进制和十六进制数系统少。因此,它具有更少的计算和更少的计算错误。它只需要 3 位来表示二进制中的任何数字,并且易于在八进制和二进制之间转换。以八进制形式处理输入和输出更容易。
八进制数系统的主要缺点是计算机不能直接理解八进制数系统,因此我们需要八进制到二进制的转换器。
八进制(基数-8)数的 7 的补码和 8 的补码
简单来说,八进制数的 7 的补码是从 7 中减去其每个数字。例如,八进制数 127 的 7 的补码是 777 - 127 = 650。
八进制数的 8 的补码是给定数字的 7 的补码加上 1 到最低有效位 (LSB)。例如,八进制数 320 的 8 的补码是 (777 - 320) + 1 = 457 + 1 = 460。请注意,八进制数系统的最大数字是 7,因此 7+1 的加法将为 0,进位为 1。