Esempio n. 1
0
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:]])
Esempio n. 5
0
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:]])