Для меня кажется трудным сделать способ, которым Вы хотите это, потому что история обоих проектов не объединится.
Мой лучший совет состоял бы в том, чтобы создать новый репозиторий для содержания ABC и DEF, сохранение старого repo от этих двух, чтобы иметь историю копирует и запускает новую историю с этого нового проекта.
Вы можете преобразовать строковое представление двоичного файла с помощью bin () и int ()
>>> bin(88)
'0b1011000'
>>> int('0b1011000', 2)
88
>>>
>>> a=int('01100000', 2)
>>> b=int('00100110', 2)
>>> bin(a & b)
'0b100000'
>>> bin(a | b)
'0b1100110'
>>> bin(a ^ b)
'0b1000110'
Думаю, вы не понимаете, что такое двоичный файл. Двоичное и десятичное - это просто разные представления числа - например, 101 с основанием 2 и 5 с основанием 10 - это одно и то же число. Операции сложения, вычитания и сравнения работают с числами - 101 база 2 == 5 основание 10, а сложение - это одна и та же логическая операция независимо от того, на какой базе вы работаете. Тот факт, что ваш интерпретатор python может хранить вещи как двоичные внутри, не делает не влияет на то, как вы работаете с ним - если у вас целочисленный тип, просто используйте +, - и т. д.
Если у вас есть строки двоичных цифр, вам придется либо написать свою собственную реализацию, либо преобразовать их с помощью Функция int (binaryString, 2).
Если вы говорите о побитовых операторах, то вам нужно:
~ Not
^ XOR
| Or
& And
В противном случае двоичные числа работают точно так же, как десятичные числа, потому что числа - это числа, как бы вы ни выглядели на них. Единственная разница между десятичным и двоичным числами заключается в том, как мы представляем эти данные, когда смотрим на них.
Двоичное, десятичное, шестнадцатеричное ... основание имеет значение только при чтении или выводе чисел, добавление двоичных чисел ничем не отличается от добавления десятичного числа: это просто вопрос представления.