本文主要是介绍Python中的进制转换——bin/oct/hex函数与int函数,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
简介
进制转换可能是一个工作学习中的常见小任务,手写相关函数显然很麻烦。
Python有相关内置函数一般能满足我们的需求。bin()、oct()、hex()将十进制转换为常用的二、八、十六进制,而 int()函数可指定第二个参数从而将其它进制转换为十进制。或许后者即 int()函数的这一用法易被人忽略。
一、bin()、oct()、hex() 函数
参数一般为 int 类型(可为负数),返回其二进制、八进制、十六进制的字符串(有相应前缀)
-
bin(x):返回 x 的二进制 '0b...'
-
oct(x):返回 x 的八进制 '0o...'
-
hex(x):返回 x 的十六进制 '0x...'
print(bin(27), oct(31), hex(-52))
0b11011 0o37 -0x34
二、int() 函数
用法一(普通显然)
int(x=0):从十进制整数/浮点数/对应字符串构造整数。对浮点数“去尾”(trunc; 无论正负)。
print(int(9.8), int(-9.8))
9 -9
★ 用法二(其它进制转换为十进制)
int(x, base=10):x 为表示整数的字符串(前可有紧连的正负号),且若指定了 base 则 x 必须为字符串,base 必须为 2~36或0:
-
base 在 2~36 :x 中 10~35 的数位应依次由 a~z 或 A~Z 表示;二、八、十六进制数分别可有0b/0B, 0o/0O, 0x/0X 前缀。
-
base 等于 0:可识别 0b/0B, 0o/0O, 0x/0X 前缀;若无则按照十进制,但此时不得有前导0。
print(int(' +37 ',base=8), int(' -z8Y ',base=36))
31 -45682print(int('0x34',base=16), int('0x34',base=0))
52 52print(int('0x34'))
ValueError: invalid literal for int() with base 10: '0x34'
这篇关于Python中的进制转换——bin/oct/hex函数与int函数的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!