Python内置函数实现进制转换

2022-09-30 07:59:23

说明

关于进制转换,我们常用到的有 二进制,八进制,十进制,十六进制。
而用到的内置函数有什么呢?

- 二进制:bin()-- 八进制:oct()-- 十进制:int()-- 十六进制:hex()

1、十进制转其他进制

十进制转二进制

bin() 返回一个整数 int 或者长整数 long int 的二进制表示。输入参数为一个int或者long int

>>>bin(4)'0b100'>>>bin(10)'0b1010'>>>print(type(bin(4)))<class'str'>
返回的是字符串,自动带上'Ob'
十进制转八进制

oct() 函数将一个整数转换成 8 进制字符串。

>>>oct(8)'0o10'>>>oct(16)'0o20'
十进制转十六进制

hex() 函数用于将10进制整数转换成16进制

>>>hex(23)'0x17'>>>hex(15)'0xf'

2、其他进制转十进制

class int(object)|  int([x]) -> integer|  int(x, base=10) -> integer||  Convert a number or string to an integer, orreturn 0if no arguments|  are given.  If x is a number,return x.__int__().  For floating point|  numbers, this truncates towards zero.||  If x is not a number orif base is given,then x must be a string,|  bytes, or bytearray instance representing an integer literalin the|  given base.  The literal can be preceded by'+' or'-' and be surrounded|  by whitespace.  The base defaults to 10.  Valid bases are 0 and 2-36.|  Base 0 means to interpret the base from the string as an integer literal.|>>> int('0b100', base=0)|  4

一般情况,int()会有以下用法

int([x])-> integer>>>int()0>>>int(3.5)3>>>int('20')20
int(x, base=10)-> integer 
如果在给出base的情况下,X的输入一定是字符串
默认情况下,base为10
如果给出base=0 的情况,如果输入不带进制标记,就直接转换字符串的内容>>>int('100',0)100# 如果输入不带进制标记,就直接转换字符串的内容  与int('100')一样>>>int('0o100',0)64# 0o表示8进制

除此之外,还有一个函数eval() ,用来执行一个字符串表达式,并返回表达式的值。

>>>x=7>>>eval('3 * x')21>>>eval('0b100')4
二进制转十进制
>>>int('0b100',0)4>>>int('100',2)4>>>eval('0b100')4
八进制转十进制

与二进制转十进制同理,八进制标记为0o

十六进制转十进制

与二进制转十进制同理,十六进制为0x

3、二进制,八进制,十六进制之间的转换

· 借助十进制

print(bin(int('0xff',16)))# 输出0b11111111

· 函数直接住转换

print(bin(0xa))# 输出0b1010print(oct(0xa))# 输出0o12print(hex(0b1010))#输出0xa
  • 作者:想要腹肌的熊
  • 原文链接:https://blog.csdn.net/qq_41907769/article/details/112691056
    更新时间:2022-09-30 07:59:23