# Two’s Complement

Why Two’s Complement ?

• Two’s complement simplifies hardware addition, subtraction and multiplication
• No division can be performed with Two’s complement

Rules :

• Positive number and zero are represented as themselfs in Two’s complement
• Negative number are represented as
• Invert every bit of the negative numbers positive equivalent.
• And the add one to that number

Example :

• We need to represent number -3 in Two’s Complement
• Positive equivalent of -3 is 3
• We convert 3 in bits i.e 00011
• We flip everybit = 11100
• We add 1 to 11100
• The result is 11101
• 11101 is the representation of negative 3 in two’s complement

## Two’s Complement in Java

• Remember that negative numbers are stored as the two’s complement of the positive counterpart.
• Let us calculate the 4 complement in java ~4
• 4 is an Integer value
• Integer is of 4 bytes i.e 32 bits
• Most significant bit is signed bit
• If input is positive then 0
• If input is negative then 1
• Since on our case 4 is positive number hence the most significant bit is 0
• Then we need to represent 4 in a 32 bit format which is 00000000 00000000 00000000 00000100
• Combining signed bit and the 32 bit as 0 00000000 00000000 00000000 00000100
• Complementing the data i.e 1 11111111 11111111 11111111 11111011
• Now the leading signed bit is 1 which indicates the result is negative hence the result has to be represented in Two’s complement
• Calculating Two’s complement for the data 1 11111111 11111111 11111111 11111011
• We will not include the signed bit here in this calculation
• First we need to calculate the 1’s complement
• The answer is 1 00000000 00000000 00000000 00000100
• Now add 1 to the above data
• 00000000 00000000 00000000 00000100 + 1
• Result after adding 00000000 00000000 00000000 00000101 which is -5 in decimal

Reference: