Python进制转换,int,oct,bin,hex函数
在生活和实际开发中,进制转换是一个常考的知识点。 虽然Java开发者已经对其进行了封装,但还是要学会自己编写相应的进制转换器的。 常用的进制有二进制,八进制,十进制,十六进制。
进制表示形式:
十进制:直接输入整数, 八进制:0o 开头 十六进制 0x开头, 二进制 0b开头
下表列出了Python内置函数的转换方法。
十进制转其他进制:
-
十进制转二进制:使用
bin()
函数decimal = 10
binary = bin(decimal)
print(binary) # '0b1010' -
十进制转八进制:使用
oct()
函数decimal = 10
octal = oct(decimal)
print(octal) # '0o12' -
十进制转十六进制:使用
hex()
函数decimal = 10
hexadecimal = hex(decimal)
print(hexadecimal) # '0xa'
其他进制转十进制:
-
二进制转十进制:使用
int()
函数,并指定进制参数binary = '1010'
decimal = int(binary, 2)
print(decimal) # 10 -
八进制转十进制:使用
int()
函数,并指定进制参数octal = '12'
decimal = int(octal, 8)
print(decimal) # 10 -
十六进制转十进制:使用
int()
函数,并指定进制参数hexadecimal = 'a'
decimal = int(hexadecimal, 16)
print(decimal) # 10
其他进制之间的转换:
-
二进制转八进制:先将二进制转换为十进制,再将十进制转换为八进制
binary = '1010'
decimal = int(binary, 2)
octal = oct(decimal)
print(octal) # '0o12' -
八进制转二进制:先将八进制转换为十进制,再将十进制转换为二进制
octal = '12'
decimal = int(octal, 8)
binary = bin(decimal)
print(binary) # '0b1010' -
十六进制转二进制:先将十六进制转换为十进制,再将十进制转换为二进制
hexadecimal = 'a'
decimal = int(hexadecimal, 16)
binary = bin(decimal)
print(binary) # '0b1010'
注意事项:
int(函数没有base传参默认是10进制,传0 也是十进制), 其他进制转换10 进制(base参数必须传参)
-
在进行进制转换时,需要注意传递正确的参数和指定正确的进制。
-
进制转换的结果以字符串形式表示,如果需要进行数值计算,可能需要将结果转换为相应的数值类型。
Java的进制转换:
十进制转其他进制
• 转二进制:Integer.toBinaryString(int i)
• 转八进制:Integer.toOctalString(int i)
• 转十六进制:Integer.toHexString(int i)

其他进制转十进制
• 二进制转:Integer.valueOf("1111", 2).toString()
• 八进制转:Integer.valueOf("7777", 8).toString()
• 十六进制转:Integer.valueOf("FFFF", 16).toString()

其他进制间互相转换
• 用十进制做中转,然后转换。
参考:https://developer.aliyun.com/article/844132