python 二进制,十进制,十六进制

本文详细介绍了十进制、二进制、八进制与十六进制之间的转换原理,并通过Python代码实例展示了如何实现这些转换。包括如何将不同进制的数值转换为十进制,以及如何将十进制数值转换为不同进制表示。同时,还提供了一个用于三进制转换的函数示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  • 十进制:decimal system,每一位最高为9,达不到10

  • 二进制:binary system,每一位最高为1,达不到2

  • 八进制:octonary number system,每一位最高为7,达不到8

  • 十六进制:hexadecimal,每一位最高为 15 或者 0xf ,取不到16(那就是 0xG 了,:-D)。

推论:

  • 如果一个数为25,则它的进制不低于6进制;

  • 自然也可以这样理解,如果一个数的某一位的取值范围为 [0,m1] ,则该数即为 m 进制;

>>> 0b1010
10 
            # 也即python原生语法是支持二进制表示
>> 0xff
255
            # 自然也支持八进制

向十进制转换

int(string, base)
            # 第一个参数标识:需要转换的原始的数据,以字符串的形式表示
            # 第二个参数标识:原始数据的base或者叫本身的进制表示
            # 2:二进制
            # 8:八进制
            # 16:表示16进制
            # 最终转化为十进制

二进制 ⇒ 十进制

>>> int('1010', 2)
10

十六进制 ⇒ 十进制

>>> int('f', 16)
15
>>> int('0xf', 16)
15
>>> int('0xff', 16)
255

八进制 ⇒ 十进制

>>> int('17', 8)
15  
            # 15 = 7*8^0+1*8^1

向16进制转化

hex(string)
            # 也即没有进制的设置
            # 只接受10进制
            # 为实现其他进制的转换,可先转换为十进制使用int()
            # 返回位字符串类型
>>> hex(1033)
'0x409'

>>> hex(int('101010', 2))
'0x2a'

>>> hex(int('17', 8))
'0xf'

向二进制转换

bin(十进制整型)
>>> bin(10)
'0b1010'

>>> bin(int('ff',16))
'0b11111111'

>>> bin(int('17',8))
'0b1111'

向八进制转换

oct()
            # 不同于hex/bin
            # 通过参数进行判断
            # 其是二进制、十进制、16进制
            # 也即oct函数可将任意进制的数转换为8进制
>>> oct(0b1010)
'012'
>>> oct(11)
'013'
>>> oct(0xf)
'017'

m进制 的转换

不断的对m求模取余,余数为当前位(低位向高位),商新的被除数,支持商为0。

例,我们以十进制的25向3进制转换;

25/3 ⇒ 8(1)
8/3 ⇒ 2(2)
2/3 ⇒ 0(2)

则25的三进制表示为 221130+231+232=25

def base(x, m):
    ms = []
    while x:
        ms.append(x%m)
        x //= m
                    # python 3
                    # //:表示整除,保留整数部分
                    // /:得float类型
    return ms

References

[1] Python 二进制,十进制,十六进制转换

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

五道口纳什

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值