Fork me on GitHub

版权声明 本站原创文章 由 萌叔 发表
转载请注明 萌叔 | https://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来减少垃圾评论。了解我们如何处理您的评论数据