数值的进制转换在编程中有时候会用到,作为高级语言的 Python 自带这个功能,不需要自己去写函数来实现。
接下来我们以十进制数 123456789 为例,实现数值进制之间的转换。
一、十进制转换为其它进制
1. 十进制转二进制
使用 bin() 函数,返回二进制字符串。
>>> decimal = 123456789
>>> binary = bin(decimal)
>>> binary
'0b111010110111100110100010101'
2. 十进制转八进制
使用 oct() 函数,返回八进制字符串。
>>> decimal = 123456789
>>> octal = oct(decimal)
>>> octal
'0o726746425'
3. 十进制转二进制
使用 hex() 函数,返回十六进制字符串。
>>> decimal = 123456789
>>> hexadecimal = hex(decimal)
>>> hexadecimal
'0x75bcd15'
二、其它进制转换为十进制
使用 int(x, base) 函数即可,x表示待转换变量,类型为字符串,base表示x的计数进制。结果返回十进制数值。
1. 二进制转十进制
>>> binary = '0b111010110111100110100010101'
>>> int(binary,2)
123456789
2. 八进制转十进制
>>> octal = '0o726746425'
>>> int(octal,8)
123456789
3. 十六进制转十进制
>>> hexadecimal = '0x75bcd15'
>>> int(hexadecimal,16)
123456789
是不是很有意思?十进制数 123456789 经历各种进制转换,从数值变为字符串,再从字符串变为数值,回到 123456789。这就像人生,最初源自尘土,不管经历什么,贫穷也好,富贵也罢,最终归于尘土。