Python中的进制转换——bin/oct/hex函数与int函数

发布时间:2024年01月24日

简介

进制转换可能是一个工作学习中的常见小任务,手写相关函数显然很麻烦。

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 -45682

print(int('0x34',base=16), int('0x34',base=0))
52 52

print(int('0x34'))
ValueError: invalid literal for int() with base 10: '0x34'

文章来源:https://blog.csdn.net/weixin_50011798/article/details/135792780
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。