进制转换
进制 | 说明 | 组成 |
---|---|---|
十进制 | 10 | 0,1,2,3,4,5,6,7,8,9 |
二进制 | 0b或者 0B开头 | 0,1 |
四进制 | 0,1,2,3 | |
八进制 | 0o或者 0O开头 | 0,1,2,3,4,5,6,7 |
十六进制 | 0x或者 0X开头,这里的大写A或者小写a代表的意思一致 | 0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f |
三十二进制 | 这里大写a和小写A代表同一个意思 | 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V |
算法说明
具体的实现是这样的,例如十进制数10,
转换为四进制就是22,那么22是这么看的,2*4^1+2*4^0=10;
同理八进制就是12,12是这么看的1*8^1+2*8^0=10;
依次类推
二进制是1010,1010是这么看的,1*2^3+0*2^2+1*2^1+0*2^0=10
十六进制结果是a,a在上表已经显示为10,那么结果就是10*16^0=10
同理,也能推断出三十二进制的结果也应该是a,a代表10,10*32^0=10,这里代码就不做判断了
n = 10# 十进制
def decimal(n):result = nreturn result# 二进制
def binary(n):result = bin(n)[2:] # 去掉前缀 '0b'return result# 四进制
def quaternary(n):result = ''while n > 0:result = str(n % 4) + resultn //= 4return result if result else '0'# 八进制
def octal(n):result = oct(n)[2:] # 去掉前缀 '0o'return result# 十六进制
def hexadecimal(n):result = hex(n)[2:].upper() # 去掉前缀 '0x' 并转为大写return resultif __name__ == "__main__":print("常量n =", n)result1 = decimal(n)print(f"十进制的结果为:{result1}")result2 = binary(n)print(f"二进制的结果为:{result2}")result3 = quaternary(n)print(f"四进制的结果为:{result3}")result4 = octal(n)print(f"八进制的结果为:{result4}")result5 = hexadecimal(n)print(f"十六进制的结果为:{result5}")
执行结果