龙空技术网

二八十六进制整数

申浩黄粱 49

前言:

此时小伙伴们对“二八十六进制的转换”大致比较关注,小伙伴们都想要了解一些“二八十六进制的转换”的相关资讯。那么小编也在网络上汇集了一些有关“二八十六进制的转换””的相关文章,希望同学们能喜欢,兄弟们一起来了解一下吧!

学习《Python Cookbook》第三版

你需要转换或者输出使用二进制,八进制或十六进制表示的整数。

为了将整数转换为二进制、八进制或十六进制的文本串,可以分别使用 bin() ,oct() 或 hex() 函数:

my_int = 1221print(bin(my_int))	# "0b10011000101"print(oct(my_int))	# "0o2305"print(hex(my_int))	# "0x4c5"

另外,如果你不想输出 0b , 0o 或者 0x 的前缀的话,可以使用 format() 函数。比如:

my_int = 1221print(format(my_int, 'b'))	# "10011000101"print(format(my_int, 'o'))	# "2305"print(format(my_int, 'x'))	# "4c5"

整数是有符号的,所以如果你在处理负数的话,输出结果会包含一个负号。比如:

sign_int = -1221print(format(sign_int, 'b'))	# "-10011000101"print(format(sign_int, 'o'))	# "-2305"print(format(sign_int, 'x'))	# "-4c5"

如果你想产生一个无符号值,你需要增加一个指示最大位长度的值。比如为了显示32 位的值,可以像下面这样写:

sign_int = -1221# 补码表示法 转换到原码,可以是补码的补码print(format(2 ** 32 + sign_int, 'b'))	# "11111111111111111111101100111011"print(format(2 ** 32 + sign_int, 'x'))	# "fffffb3b"

为了以不同的进制转换整数字符串,简单的使用带有进制的 int() 函数即可:

print(int('4c5', 16))	# "1221"print(int('10011000101', 2))	# "1221"

大多数情况下处理二进制、八进制和十六进制整数是很简单的。只要记住这些转换属于整数和其对应的文本表示之间的转换即可。永远只有一种整数类型。

最后,使用八进制的程序员有一点需要注意下。 Python 指定八进制数的语法跟其他语言稍有不同。比如,如果你像下面这样指定八进制,会出现语法错误:

# os.chmod('py20210224.py', 0755) # 这种会报错 SyntaxError: invalid tokenos.chmod('py20210224.py', 0o0755)

标签: #二八十六进制的转换 #二八十六进制的转换例题 #二八十六进制的转换对照表格