在python中如何将二进制字符串转换为可以进行加减运算的二进制

在python中如何将二进制字符串转换为可以进行加减运算的二进制
例如二进制字符串'0b101110'转换为可以进行二进制加减法的0b101110

img


像a和b一样

如果明确是二进制字符串转换数值,主要有2种方式来处理

  1. eval函数,比如:
    a="0b101110"
    b=eval(a)
    print("{}={}".format(b,bin(b)))
    
  2. int函数,比如:
    a="0b101110"
    b=int(a,base=2)
    print("{}={}".format(b,bin(b)))
    
    使用中,建议用int的模式,特别是在网络编程处理数据中,用这种更安全,减少被攻击的可能。

a='0b101110'
b=eval(a)

只是代码的书写方式,在内存中还是int型数据。

>>> eval('0b101101')
45
>>> int('0b101101',2)
45
>>> 0b101101
45
>>> a = 0b10110
>>> b = 0b1
>>> a-b
21
>>> bin(a-b)
'0b10101'
>>> int(bin(a-b), base=2)
21