📜  八进制算术(1)

📅  最后修改于: 2023-12-03 14:50:04.572000             🧑  作者: Mango

八进制算术

在计算机科学中,八进制是一种基数为 8 的数字系统。它由 8 个不同的符号组成,分别是 0、1、2、3、4、5、6 和 7。在八进制中,数字 10 表示为 8,数字 11 表示为 9,依此类推。

八进制表示法

在程序中,可以使用前缀 0o0O 来表示一个八进制数。例如,0o123 表示 123(十进制)。

以下是一些常用的八进制数:

| 十进制 | 八进制 | | :----: | :----: | | 0 | 0 | | 1 | 1 | | 2 | 2 | | 3 | 3 | | 4 | 4 | | 5 | 5 | | 6 | 6 | | 7 | 7 | | 8 | 10 | | 9 | 11 | | 10 | 12 | | 11 | 13 | | 12 | 14 | | 13 | 15 | | 14 | 16 | | 15 | 17 |

八进制算术操作

在 Python 中,可以使用普通的算术运算符来进行八进制数的运算。以下是一些常用的运算符:

加法
0o10 + 0o01  # 11
减法
0o21 - 0o12  # 7
乘法
0o10 * 0o03  # 24
除法

在 Python 2 中,使用 / 运算符对两个八进制数进行除法运算会先将它们转换成十进制数,然后再进行除法运算。因此,在 Python 2 中不推荐使用 / 运算符进行八进制数的除法运算。

在 Python 3 中,使用 / 运算符对两个八进制数进行除法运算会先将它们转换成十进制数,然后再进行除法运算。因此在 Python 3 中同样不推荐使用 / 运算符进行八进制数的除法运算。

如果要进行八进制数的整除运算,可以使用 // 运算符。

0o25 // 0o06  # 5
模运算

在 Python 中,使用 % 运算符对两个八进制数进行模运算会先将它们转换成十进制数,然后再进行模运算。

如果要进行八进制数的模运算,可以先将它们转换成十进制数,然后再将运算结果转换回八进制数。

oct(int(str(0o71 % 0o06), 8))  # '0o03'
整除和取余

在 Python 中,使用 divmod() 函数可以同时进行整除和取余运算。

divmod(0o47, 0o04)  # (11, 3)
八进制数的位运算

在 Python 中,与十进制数相似,八进制数也可以进行位运算,包括按位与、按位或、按位异或和按位取反。

以下是一些常用的位运算符:

按位与
0o15 & 0o07  # 5
按位或
0o15 | 0o05  # 15
按位异或
0o15 ^ 0o05  # 10
按位取反
~0o05  # -6
八进制数和其他类型之间的转换

在 Python 中,可以使用内置的 int() 函数将一个字符串或其他进制的数转换成一个八进制数。

int('25', 8)  # 21

还可以使用内置的 oct() 函数将一个十进制数或其他进制的数转换成一个八进制数。

oct(21)  # '0o25'
总结

在 Python 中,可以使用八进制数进行常规的算术和位运算。此外,还可以使用内置的函数将其他进制的数转换成八进制数,或将八进制数转换成其他进制的数。