Python 二进制,十进制,十六进制转换

十六进制 到 十进制

使用 int() 函数 ,第一个参数是字符串 '0Xff' ,第二个参数是说明,这个字符串是几进制的数。 转化的结果是一个十进制数。

>>> int('0xf',16)

15

二进制 到 十进制

>>> int('10100111110',2)

1342

八进制 到 十进制

>>> int('17',8)

15

其实可以看到,不管 几进制数 转换成 十进制数 ,都是用 int() 函数 。之后后面的 第二个参数 写清楚 前面字符串 是 几进制数就可以 。注意一定要合法。 比如2进制数就不能出现2这样的字符。

----------------------------------------------------------------------------------------------------------------------------

十进制 转 十六进制

>>> hex(1033)

'0x409'

二进制 转 十六进制

就是 二进制先转成 十进制, 再转成 十六进制。

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

'0x2a'

八进制到 十六进制

就是 八进制先转成 十进制, 再转成 十六进制。

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

'0xf'

----------------------------------------------------------------------------------------------------------------------------

十进制转二进制

>>> bin(10)

'0b1010'

十六进制转 二进制

十六进制->十进制->二进制

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

'0b11111111'

八进制 到 二进制

八进制先到十进制,再到二进制

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

'0b1111'

----------------------------------------------------------------------------------------------------------------------------

二进制 到 八进制

>>> oct(0b1010)

'012'

十进制到八进制

>>> oct(11)

'013'

十六进制到八进制

>>> oct(0xf)

'017'

可见oct 函数 可将 任意进制的数 转换成 8进制的。

PythonBasic/Python十进制、十六进制、字节串、字符串转换.md at master · daacheng/PythonBasic · GitHub

Python十进制、十六进制、字节串、字符串转换


整数之间进制转换


    #十进制转换成十六进制
    hex(10)    #'0xa'
    hex(11)    #'0xb'
    hex(15)    #'0xf'

    #十六进制转换为十进制
    int('0xa',16)         #10
    int('ff',16)          #255
    int('f',16)           #15

    #十进制转换成二进制
    bin(2)                #'0b10'
    bin(255)              #'0b11111111'
    bin(8)                #'0b1000'

    #十进制转换成八进制
    oct(8)                #'0o10'
    oct(7)                #'0o7'
    oct(9)                #'0o11'

字符串转换成整数


    #十进制字符串转整数
    int('10')             #10
    int('20')             #20

    #十六进制字符串转整数
    int('f',16)           #15
    int('ff',16)          #255
    int('a',16)           #10
    int('11',16)          #17

    #二进制字符串转整数
    int('1000',2)         #8
    int('1001',2)         #9

    #字节串转整数
    import struct
    struct.unpack('>II',bytes(b'\x01\x00\x00\x00\x01\x00\x00\x00'))             #(16777216, 16777216)

    #整数转换成字节串
    struct.pack('>II',16777216, 16777216)                                       #b'\x01\x00\x00\x00\x01\x00\x00\x00'

字符串转字节串


    #字符串编码为字节码
    '123abc'.encode('ascii')                  #b'123abc'
    '123abc'.encode('utf-8')                  #b'123abc'
    '123abc好'.encode('utf-8')                #b'123abc\xe5\xa5\xbd'

    #十六进制字符串转字节串
    bytes.fromhex('ff011a')                   #b'\xff\x01\x1a'
    #十六进制字符串转字节串
    bytes(map(ord,'\xff\x01\x1a'))            #b'\xff\x01\x1a'
    #十六进制数组转字节串
    bytes([0x01,0x02,0x03,0xff])              #b'\x01\x02\x03\xff'

字节串转字符串


    #字节码解码为字符串
    bytes(b'123abc\xe5\xa5\xbd').decode('utf-8')         #'123abc好'
    #字节串转16进制表示
    str(bytes(b'123abc\xe5\xa5\xbd'))                    #"b'123abc\\xe5\\xa5\\xbd'"
    str(bytes(b'123abc\xe5\xa5\xbd'))[2:-1]              #'123abc\\xe5\\xa5\\xbd'
    #字节串转换成16进制数组
    [hex(i) for i in bytes(b'123')]                      #['0x31', '0x32', '0x33']
  • 4
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值