Starting from:
$30

$24

Homework #8 Solution

Two's-Complement







The two's-complement representation of a non-negative integer is simply its standard representation in base 2. However, the two's-complement representation of a negative integer is obtained by first finding the base-2 representation of its absolute value, then flipping each bit, and finally adding the number 1.




This problem has two parts.




First, write a function called TcToNum that takes as input a string of 8 bits representing an integer in two's-complement, and returns the corresponding integer. Notice here that since the input



string is always exactly 8 bits long, we will often have leading 0s in the input, as in "00000001". Here is sample input and output:




TcToNum("00000001")



1




TcToNum("11111111")



-1




TcToNum("10000000") -128
TcToNum("01000000")



64




Next, write a function called NumToTc that takes as input an integer N, and returns a string representing the two's-complement representation of that integer. You should assume that exactly 8 bits are being used, so only a certain range of numbers can be represented! The output should be exactly 8 bits long in all cases. If the input N is such that it cannot be represented in two's-complement with 8 bits, the function should return "Error". Here is some sample input and output:



NumToTc(1)



'00000001'




NumToTc(-128) '10000000'









NumToTc(200)



'Error'

More products