Representing negative numbers in binary requires us to identify the sign that is used in front of the number. You will already be familiar with using a sign for negative numbers in maths as if the number is negative then a minus sign is placed before it. a signed integer is simply a whole number that is identified as either positive or negative and can be either.
Sign & Magnitude
In computer science there are several ways that we can identify positive and negative numbers the first of which is Sign and Magnitude. Sign and Magnitude simply replaces the most significant bit with the sign much like we would see in the denary number system except instead of adding a symbol we add a 1 or a 0 to represent either positive or negative.
In the example below we know that we have a negative number because there is a 1 in the in significant bit representing the sign. To turn this into a positive number all we need do is simply change the one into a 0.
Unfortunately, Sign and Magnitude is not a very efficient way to represent positive and negative numbers. Two’s Compliment is an alternative way to represent both positive and negative numbers which can then be used in arithmetic operations. You will see Two’s Compliment in use when floating point numbers normalised.
There are several ways in which to convert from denary into a negative Two’s Complement format. However, one particular way is very useful for the exam as it does not rely on a brute force technique and makes use of your prior understanding of how to create a positive binary number. Following the steps in the algorithm below we can transform a positive number into a negative number using the Two’s Complement method:
- set up the columns with the most significant bit as a minus number
- convert the positive version of the number into its fixed point binary format
- identify the least significant one
- retain the same numbers for the least significant one and any trailing zeros
- flip all other digits towards the most significant figure
Of course, don’t trust me and just use my example! Take any negative integer and test this theory out for yourself.