python11_进制转换

进制转换

进制说明组成
十进制100,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 = n
    return result


# 二进制
def binary(n):
    result = bin(n)[2:]  # 去掉前缀 '0b'
    return result


# 四进制
def quaternary(n):
    result = ''
    while n > 0:
        result = str(n % 4) + result
        n //= 4
    return 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 result


if __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}")



执行结果
在这里插入图片描述

Python中的进制转换涉及到将一种数制的数转换为另一种数制。Python内置了多个函数和方法来支持不同的进制转换。 1. 十进制转换为其他进制:可以使用内置的`hex()`, `oct()`, `bin()`函数来将十进制数分别转换为十六进制、八进制和二进制。这些函数返回的是一个字符串形式的转换结果,并且十六进制的字符串前缀为`0x`,八进制的字符串前缀为`0o`,二进制的字符串前缀为`0b`。 2. 其他进制转换为十进制:可以使用内置的`int()`函数,通过指定基数(base)来实现。`int()`函数接受两个参数:第一个是数字字符串,第二个是基数。例如,将十六进制的字符串转换为十进制,基数就是16。 3. 其他进制之间的转换:通常需要先将一个数转换为十进制,然后再从十进制转换为目标进制。即先用`int()`函数转为十进制,再用`hex()`, `oct()`, `bin()`函数或者格式化字符串的方式转为目标进制。 下面是一些代码示例: ```python # 十进制转为其他进制 decimal_number = 255 hex_number = hex(decimal_number) # 十进制转为十六进制 oct_number = oct(decimal_number) # 十进制转为八进制 bin_number = bin(decimal_number) # 十进制转为二进制 print(hex_number) # 输出: '0xff' print(oct_number) # 输出: '0o377' print(bin_number) # 输出: '0b11111111' # 其他进制转为十进制 hex_str = '1A3' decimal_from_hex = int(hex_str, 16) # 十六进制转为十进制 print(decimal_from_hex) # 输出: 419 # 其他进制之间的转换,先转为十进制再转为其他进制 binary_str = '11010111' decimal_from_bin = int(binary_str, 2) # 二进制转为十进制 hex_from_bin = hex(decimal_from_bin) # 再转为十六进制 print(decimal_from_bin) # 输出: 215 print(hex_from_bin) # 输出: '0xd7' ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值