2017-01-25 5 views
0

Есть ли пакеты python для добавления массивов байтов вместе так же, как добавление двоичных строк вместе.В python Есть ли способ добавить два байтовых массива вместе как двоичные строки?

Например:

"0011" + "0101" = "0110" 

, но только с байтами.

Я попытался преобразовать байты в строки, но слишком много работы для компьютера. Было бы проще просто добавить байты вместе.

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

Как "0011" + "0101" станет "0110"? – MBo

+0

Вы хотите объединить байтовые массивы или добавить двоичные значения? – Fruitspunchsamurai

ответ

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 
Смежные вопросы