Difference between revisions of "Computer Number Systems"

From ACSL Category Descriptions
Jump to navigation Jump to search
(Blanked the page)
Line 1: Line 1:
All computers – from large mainframes to hand-held micros – ultimately can do one thing: detect whether an electrical signal is “on” or “off”.  Computer programs in all high-level languages are converted by various pieces of systems software into sequences of bits (Binary digITs) which correspond to sequences of on/off (equivalently TRUE/FALSE or 1/0) signals.  These bits must represent the operation and the address for each instruction.  Binary digits (or bits) are also used to represent all forms of data including integers, floating point or decimal values, character strings, sound, and visual images.  Proficiency in the binary number system is essential to understanding how a computer works.


Since binary numbers representing moderate values quickly become rather lengthy, bases eight (octal) and sixteen (hexadecimal) are frequently used as short-hand.  Octal numbers group binary numbers in bunches of 3 digits and convert the triplet to a single digit between 0 and 7, inclusive.  For example, 10010101102 = 001 001 010 110<nowiki><nowiki>Insert non-formatted text here</nowiki><nowiki>Insert non-formatted text here</nowiki></nowiki>2 = 11268.  This is because 8 = 23 and the value of three bits 111 = 1 + 2 + 4 = 7 using powers of 2.  Hexadecimal numbers group binary numbers by fours, and convert the quadruplet to a single digit in the range 0, 1, 2 …, 9, A, B, C, D, E, F.  The digits A through F have decimal values of 10 through 15 respectively.  This is because 16 = 24 and the value of four bits 1111 = 1 + 2 + 4 + 8 = 15 using powers of 2.  For example, 101101101001012 = 0010 1101 1010 01012 = 2DA516.  All of the basic rules of number theory apply to every base, but these three bases 2, 8, and 16 are uniquely suited for computer science.
Therefore, converting from any base to base 10 involves multiplying each digit by an increasing power of that base.  For example, 4578 = 7 x 80 + 5 x 81 + 4 x 82 = 7 + 40 + 256 = 30310.  Converting from base 10 to any other base involves finding how many times each decreasing power of that base can be divided evenly into the number and repeating the process with the remainder.  For example, 50010 = 256 x 1 + 16 x 15 + 1 x 4 = 1F416.  Another way to accomplish this is to repeatedly divide the number by the base as follows:
  Therefore, reading the remainders from bottom to top give you 1F416.
Adding in bases other than 10 means that you must carry the value of that base and subtracting in bases other than 10 means that you must borrow the value of that base if necessary.  For example,  since D=13 and 13+3=16 so leave the 0 and carry the 16 as a 1.  Then E=14 and A=10 so 1+14+10 = 25 so leave the 9 and carry the 16 as a 1.  E=14 so 1+14+9=24 so leave the 8 and carry the 16 as 1.  Finally, F=15 so 1+15=16 which is 10.
Subtracting in base 8 is as follows:  .  Borrow 1=8 from the 7 since 2+8-6=4.  Therefore, 6–5=1.  Then, borrow 1=8 from the 4 since 5+8–7=6.  Then the last digit on the left is a 3.
References
Many pre-Algebra textbooks cover bases other than 10.  From the computer science point of view, most books covering Assembly Language also cover binary, octal, and hex number systems.  The following sites provide a very good overview:  https://code.tutsplus.com/articles/number-systems-an-introduction-to-binary-hexadecimal-and-more--active-10848 and https://www.includehelp.com/computer-number-systems.aspx.
�Sample Problems
Solve for X.
X 16 = 36768
One method of solution is to convert 36768 into base 10, and then convert that number into base 16 to yield the value of X.
An easier solution, less prone to arithmetic mistakes, is to convert from octal (base 8) to hexadecimal (base 16) through the binary (base 2) representation of the number:
    36768 = 011  110  111  1102 = 0111101111102
              = 0111  1011  11102 = 7BE16
Solve for X.
X 16 = FEED16 – 6ACE16
The rightmost digit becomes F, because 1D-E=F.  Next, D-C=1 (the E becomes a D because we had to borrow from it to do the units’ subtraction), E-A=4, and then F-6=9.  Combining these results of each column, we get a final answer of 941F16.
In the ACSL computer, each “word” of memory contains 20 bits representing 3 pieces of information.  The most significant 6 bits represent Field A; the next 11 bits, Field B; and the last 3 bits represent Field C.  For example, the 20 bits comprising the “word” 1814916  has fields with values of 610 , 2910  and 110.  What is Field B in E1B7D16 ?  (Express your answer as a base 16 number.)
1814916 = 0001  1000  0001  0100  1001
              = 000110  00000101001  001
              = 610 2910 110
E1B7D16 = 1110  0001  1011  0111  1101
                = 111000  01101101111  101
Field B = 01101101111
            = 011  0110  1111
            = 36F16
Which has the least 1’s in its binary equivalent?
A.  FAD16 – ABE16    B.  56478 + 15438
C.  1011102 * 10102    D.  240010 / 510
A.  FAD16 – ABE16 = 4EF16 = 100111011112 (8 1s)
B.  56478 + 15438 = 74128 = 111100001010 (6 1s)
C.  1011102 * 10102 = 111001100 (5 1s)
D.  240010 / 510 = 48010 = 111100000 (4 1s)
Therefore, the answer is D.
What is the average of the following numbers in base 10?
4578          AB916          101101011002
4578 = 1001011112 = 1 0010 11112 = 12F16             
101101011002 = 101 1010 11002 = 5AC16
12F16 + AB916 + 5AC16 = 119416
4 + 9*16 + 1*256 + 1*4096
= 4 + 144 + 256 + 4096 = 450010 ÷ 3 = 150010
Which of these numbers is the largest?
6508      52510      1AB16      1101010102 
You can use any common base, but the best might be base 8.  52510=6518, 1AB16=6538, 1101010102=6528.  Therefore, the largest is 1AB16.

Revision as of 07:33, 1 August 2018