Search
Recommended Sites
Related Links






Valid XHTML 1.0 Transitional

Valid CSS!
   

Informative Articles

The Inception of Modern Computers, via the Back Passage.
Some consideration must be made for the many memory inconsistencies of Thick Mick. He does his best! When I was no more than the size of a mediocre ostrich egg, I got my first computer. The year was 0001 A.D. Now, no more than myself, it wasn't...

Crime Fighting Computer Systems and Databases
As crime globalizes, so does crime fighting. Mobsters, serial killers, and terrorists cross state lines and borders effortlessly, making use of the latest advances in mass media, public transportation, telecommunications, and computer networks. ...

The Right Amount Of Computer Time
In a country that settles each night in front of the television, it just seems strange that more and more people are finding the allure of the computer screen sometimes more important. There is no doubt that children do as their parents do. They...

How to repair computer errors
Learn how to repair computer errors that are annoying and intrusive. Find out about the different types of errors, where they come from and what causes them. When you have a computer error it can be very frustrating,...

14 Household Ways To Protect Your Computer From Viruses
Computer viruses are deadly. They often spread without any apparent contact and can be a nuisance, or even worse, fatal to your computer. Individuals who create these viruses, estimated at 10-15 new ones a day, are the electronic version of...

 
History Of The Computer - Negative Numbers For Subtraction

Now we know about adding and multiplying, and have touched on dividing (see History of the Computer - Flip-Flops a basic counter) what about subtracting and negative numbers? Once again we take the simple way.

To form a negative number, we simply invert the positive number, in binary, and add 1. For example

0000 0110 - (6) inverted becomes
1111 1001 - now add 1 to get
1111 1010 - (-6)

This is how a computer records -6. The Most Significant Bit - in this case bit 7 or bit value 128 decimal is used as the Sign Bit. If this bit is a zero, the number is positive, if it is a one, the number is negative. This notation is known as 'Twos Complement'.

(There is also 'Ones Complement', without the added 1, which was used in some proprietary systems, but it required more complicated logic to get around problems like having + and - zero. It is not necessary to go into the detail of this notation for an understanding of the logic.)

The Sign bit uses one of the bit positions, meaning that our range of numbers is reduced. For example 0111 1111 is the highest positive 8-bit number (127 decimal). The next number, 128 decimal would be 1000 0000, however the bit value 128 in bit 7 cannot be used as it is now the sign bit.

SUBTRACTION

Now we can have a negative number it will be easy to subtract. We can use an adder, which we already have. This is possible because 9-3 is the same as 9+(-3). For instance 9-3 decimal is 00001001-00000011 in 8 bit binary. We take the 9 and add it to the twos complement of 3, thus we can use our adder with a bit of extra logic to invert the negative number and add 1 to it. The twos complement of 3 (decimal) or in binary

of 0000 0011
is 1111 1100
add 1 + 0001
is 1111 1101

Now add to the 9 (decimal) using an 8 bit adder:-
7654 3210 - bit #
0000 1001 - (9)
1111 1101 - (-3)

Remember your binary addition?

Least significant bit (bit 0), 1+1 is 0 and a carry.
Next bit (bit 1) is 0+0+carry = 1 no carry.
Next bit (bit 2) is 1+0 = 1 no carry.
Next bit (bit 3) is 1+1 = 0 and a carry.
Next bit (bit 4) is 1+0+carry = 0 and a carry.
Next 3 bits (5,6,7) are the same as 4 - 1+0+carry = 0. The last carry falls off the end.*

So we get:-

0000 0110 (6 Decimal - 9-3=6)

Which, fortunately, if you followed it, is the right answer! Are these computers smart or what? This system works with negative results as well, for instance try 3-9. You should end up with the
twos complement of 6. This is not a compulsory exercise!

* The carry from the most significant bit, in this example bit 7, but could be bit 31 or 63 in some computers, is ignored in this case. However it is used in some functions, for instance a circular bit shift, which we will look at in a later article.



About the Author:

Tony is an experienced computer engineer. He is currently webmaster and contributor to http://www.what-why-wisdom.com . A set of diagrams accompanying these articles may be seen at http://www.what-why-wisdom.com/history-of-the-computer-0.html . RSS feed also available - use http://www.what-why-wisdom.com/Educational.xml .

Source: www.isnare.com

Sign up for PayPal and start accepting credit card payments instantly.