def signed(first, second): if first[1:] >= second[1:]: larger = first[1:] smaller = second[1:] else: larger = second[1:] smaller = first[1:] result = substract_binary(larger, smaller) if len(result) > 7: raise ValueError("Overflow") return larger[0] + result
def two_complement(binary): sign = binary[0] binary = substract_binary(binary, "1") my_binary = "".join(["1" if bit == "0" else "0" for bit in binary]) number = to_decimal(my_binary) return number if sign == "0" else number * -1
def one_complement(two_complement): return substract_binary(two_complement, "1")
def two_complement(signed): signed = substract_binary(signed, '1') return signed[0] + ''.join(['1' if bit == '0' else '1' for bit in signed[1:]])
def signed(two_complement): one_complement = substract_binary(two_complement, '1') return one_complement[0] + ''.join(['1' if bit == '0' else '0' for bit in one_complement[1:]])