本文共 1913 字,大约阅读时间需要 6 分钟。
在编程中,进制表示是将数字以特定的基数表示为字符串形式。常见的进制表示方式包括二进制、八进制和十六进制。
二进制表示
二进制以0b开头,例如: print(0b10) # 输出:2 print(0b11) # 输出:3
10在二进制中表示为0b10,对应十进制的2。
八进制表示
八进制以0o开头,例如: print(0o10) # 输出:8 print(0o11) # 输出:9
10在八进制中表示为0o10,对应十进制的8。
十六进制表示
十六进制以0x开头,例如: print(0x10) # 输出:16 print(0x11) # 输出:17
10在十六进制中表示为0x10,对应十进制的16。
默认十进制表示
如果没有指定进制,输入默认为十进制数,例如:print(10) # 输出:10
在Python中,可以通过内置函数轻松实现进制转换。以下是常用的转换函数及其使用方法。
bin()函数)bin()函数用于将十进制数转换为二进制字符串。
i = 16 j = bin(i) print(j) # 输出:'0b10000'
0b10000表示十进制数16转换为二进制后为10000。
oct()函数)oct()函数用于将十进制数转换为八进制字符串。
i = 16 j = oct(i) print(j) # 输出:'0o20'
0o20表示十进制数16转换为八进制后为20。
hex()函数)hex()函数用于将十进制数转换为十六进制字符串。
i = 16 j = hex(i) print(j) # 输出:'0x10'
0x10表示十进制数16转换为十六进制后为10。
int(a, R)函数)int()函数可以接收任意进制的字符串并将其转换为十进制数。需注意,输入必须是字符串类型。
i = "10" j = int(i, 2) # 二进制转换 print(j) # 输出:2 i = "10" j = int(i, 8) # 八进制转换 print(j) # 输出:8 i = "10" j = int(i, 16) # 十六进制转换 print(j) # 输出:16
以下函数可以实现十进制小数转R进制的小数转换:
def dec2R(dec, R, n): ''' :param dec: 需要转换的十进制小数 :param R: 转换进制 :param n: 保留小数位数 :return: 转换后的R进制小数 ''' result = ['0.'] for i in range(n): dec = dec * R dec_int = int(dec) result.append(str(dec_int)) dec = dec - dec_int if dec == 0: break return ''.join(result)
以下函数可以实现R进制小数转十进制的转换:
def R2dec(r_float_num, R): ''' :param r_float_num: 需要转换的R进制小数 :param R: 转换进制 :return: 转换后的十进制小数 ''' result = 0 for index, ch in enumerate(str(r_float_num)[2:], start=1): result = result + int(ch) * (R ** (-index)) return result
通过以上方法,我们可以轻松地在Python中进行不同进制之间的转换操作。无论是整数转换还是小数转换,都可以通过内置函数和自定义函数来实现。
转载地址:http://vqofk.baihongyu.com/