- complement each digit in turn (change 1 for 0 and 0 for 1).
- add 1 (one) to the result.
By applying these steps you are effectively turning the value into a negative number, and as when dealing with decimal numbers, if you add a negative number to a positive number then you are effectively subtracting to the same value.
In other words 25 + (-8) = 17, which is the same as writing 25 - 8 = 17.
An example, let's do the following subtraction 11101011 - 01100110 (23510 - 10210)
note: When subtracting binary values it is important to maintain the same amount of digits for each number, even if it means placing zeroes to the left of the value to make up the digits, for instance, in our example we have added a zero to the left of the value 1100110 to make the amount of numerals up to 8 (one byte) 01100110.
First we apply two's complement to 01100110
which gives us 10011010.
Now we need to add 11101011 + 10011010, however when you do the addition you always disregard the last carry, so our example would be:
which gives us 10000101, now we can convert this value into decimal, which gives 13310
So the full calculation in decimal is 23510 - 10210 = 13310 (correct !!)
reference: helpwithpcs.com




