Python中如何让bin()函数返回的二进制值为整数类型?
问题解决方法
首先明确Python内置函数bin()的设计逻辑:该函数的作用是将输入整数转换为带0b前缀的人类可读二进制字符串表示,原生设计就是返回字符串类型,无法直接通过bin()得到整数结果。你可以根据自身实际需求选择对应实现方案:
方案1:需要的是二进制对应原始数值
整数在Python底层本身就是以二进制形式存储的,bin(15)返回的'0b1111'只是可视化的字符串形式,你定义的b = 15本身就是整数类型的对应值,不需要做额外转换。
方案2:需要把二进制位序列直接拼成十进制整数
如果要把15对应的二进制位1111直接转为十进制整数1111,可以用如下代码实现:
b = 15 # bin(b)[2:] 作用是去掉bin返回字符串的0b前缀,再转成十进制整数 a = int(bin(b)[2:]) print(a, type(a)) # 输出结果:1111 <class 'int'>
方案3:需要把二进制字符串转回对应原始整数
如果是要把bin()返回的二进制字符串反向转回对应的整数,直接给int()传入base=2参数即可:
b = 15 bin_str = bin(b) a = int(bin_str, base=2) print(a, type(a)) # 输出结果:15 <class 'int'>
内容的提问来源于stack exchange,提问作者Phyo Pyae Sone
相关产品推荐
相关产品推荐

