Fork me on GitHub

版权声明 本站原创文章 由 萌叔 发表
转载请注明 萌叔 | http://vearne.cc

引言:

因为需要打印float型/int型二进制表示
这里封装了几个函数,方便日后使用。

struct_utils.py

import struct
def type2bin(num, fmt):
    ll = [bin(ord(c)) for c in struct.pack(fmt, num)]
    res = []
    for item in ll:
        res.append(item.replace('0b', '').rjust(8, '0'))
    return ''.join(res)

def bin2type(bits, fmt):
    return struct.unpack(fmt, struct.pack(fmt, int(bits, 2)))[0]

def float2bin(num):
    return type2bin(num, '>f')

def bin2float(bits):
    return bin2type(bits, '>f')

def int2bin(num):
    return type2bin(num, '>i')

def bin2int(bits):
    return bin2type(bits, '>i')

def long2bin(num):
    return type2bin(num, '>q')

def bin2long(bits):
    return bin2type(bits, '>q')

if __name__ == '__main__':
    res = float2bin(5.5)
    print res
    res = bin2float(res)
    print res
    print '-----------------'
    res = int2bin(345)
    print res
    res = bin2int(res)
    print res
    print '-----------------'
    res = long2bin(345)
    print res
    res = bin2long(res)
    print res

如果我的文章对你有帮助,你可以给我打赏以促使我拿出更多的时间和精力来分享我的经验和思考总结。

微信支付码

发表评论

电子邮件地址不会被公开。

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据