📅  最后修改于: 2023-12-03 14:50:04.572000             🧑  作者: Mango
在计算机科学中,八进制是一种基数为 8 的数字系统。它由 8 个不同的符号组成,分别是 0、1、2、3、4、5、6 和 7。在八进制中,数字 10 表示为 8,数字 11 表示为 9,依此类推。
在程序中,可以使用前缀 0o
或 0O
来表示一个八进制数。例如,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 中,可以使用八进制数进行常规的算术和位运算。此外,还可以使用内置的函数将其他进制的数转换成八进制数,或将八进制数转换成其他进制的数。