在python中,有没有办法像二进制字符串一样添加两个Byte数组?

时间:2017-01-25 15:33:41

标签: python math byte bits

是否有任何python包用于将字节数组添加到一起,就像将二进制字符串一起添加一样。

例如:

"0011" + "0101" = "0110"

但仅限于字节。

我试图将字节转换为字符串,但它对计算机来说太多了。将字节加在一起会更容易。

Bytearray1["10000011", "00000000"] 
+
Bytearray2["10000101", "00000000"]
=
Bytearray3["00000110", "00000001"]

1 个答案:

答案 0 :(得分:0)

您需要使用按位运算符。在您的特定情况下,您需要XOR(按位排除或)。在python XOR中用^。

表示

请看下面的示例:

a = int('0011', 2)
b = int('0101', 2)
c = a^b  
binary_rep = '{:04b}'.format(c)  # convert integer to binary format (contains 4 digits with leading zeros)
print(binary_rep)

以上代码打印出' 0110'到了屏幕。

您还可以按如下方式定义自己的功能:

def XOR(x, y, number_of_digits):
    a = int(x, 2)
    b = int(y, 2)
    c = a^b  
    format_str = '{:0%db}' % number_of_digits
    binary_rep = format_str.format(c) 
    return binary_rep