19. 19
CMPE12c Gabriel Hugh Elkaim
Number Systems
• Prehistory
Unary, or marks:
/////// = 7
/////// + ////// = /////////////
• Grouping lead to Roman Numerals:
VII + V = VVII = XII
• Better, Arabic Numerals:
7 + 5 = 12 = 1 x 10 + 2
20. 20
CMPE12c Gabriel Hugh Elkaim
Positional Number System
• Base 10 is a special case of positional
number system
• PNS First used over 4000 years ago in
Mesopotamia (Iraq)
– Base 60
– 0...59 (written as 60 different symbols)
– 5,4560 = 5 x 60 + 45 = 34510
• Positional Number Systems are great for
algebra
• Why?
21. 21
CMPE12c Gabriel Hugh Elkaim
Arabic Numerals
• 345 is really
– 3 x 102
+ 4 x 101
+ 5 x 100
– 3 x 100 + 4 x 10 + 5 x 1
– 3 is the most significant symbol (carries the most
weight)
– 5 is the least significant symbol (carries the least
weight)
• Digits (or symbols) allowed: 0-9
• Base (or radix): 10
22. 22
CMPE12c Gabriel Hugh Elkaim
Try multiplication in (non-positional) Roman numerals!
XXXIII (33 in decimal)
XII (12 in decimal)
---------
XXXIII
XXXIII
CCCXXX
-----------
CCCXXXXXXXXXIIIIII
-----------
CCCLXXXXVI
-----------
CCCXCVI = 396 in decimal
Positional Number System
The
Mesopotamians
wouldn’t have
had this
problem!!
*
+
23. 23
CMPE12c Gabriel Hugh Elkaim
• There are many ways to “represent” a number
• Representation does not affect computation result
LIX + XXXIII = LXXXXII (Roman)
59 + 33 = 92 (Decimal)
• Representation affects difficulty of computing results
• Computers need a representation that works with fast
electronic circuits
• Positional numbers work great with 2-state devices
Positional Number System
34. 34
CMPE12c Gabriel Hugh Elkaim
•Base (radix): 2
•Digits (symbols) allowed: 0, 1
•Binary Digits, or bits
•10012 is really
1 x 23
+ 0 x 22
+ 0 X 21
+ 1 X 20
910
•110002 is really
1 x 24
+ 1 x 23
+ 0 x 22
+ 0 x 21
+ 0 x 20
2410
Binary Number System
35. 35
CMPE12c Gabriel Hugh Elkaim
Computers multiply Arabic numerals by
converting to binary, multiplying and
converting back (much as us with Roman
numerals)
Binary Number System
So if the computer is all binary how does
it multiply 5 by 324 when I type it in the
calculator program?
36. 36
CMPE12c Gabriel Hugh Elkaim
Octal Number System
• Base (radix): 8
• Digits (symbols): 0 – 7
• 3458 is really
– 3 x 82
+ 4 x 81
+ 5 x 80
– 192 + 32 + 5
– 22910
• 10018 is really
– 1 x 83
+ 0 x 82
+ 0 x 81
+ 1 x 80
– 512 + 1
– 51310
• In C, octal numbers are represented with a
leading 0 (0345 or 01001).
37. 37
CMPE12c Gabriel Hugh Elkaim
Hexadecimal Number System
• Base (radix): 16
• Digits (symbols) allowed: 0 – 9, a – f
Hex Decimal
a 10
b 11
c 12
d 13
e 14
f 15
38. 38
CMPE12c Gabriel Hugh Elkaim
A316 is really:
A x 161
+ 3 x 160
160 + 3
16310
3E816 is really:
3 x 162
+ E x 161
+ 8 x 160
3 x 256 + 14 x 16 + 8 x 1
768 + 224 + 8
100010
Hexadecimal Number System
Some Examples of converting hex numbers
to decimal
39. 39
CMPE12c Gabriel Hugh Elkaim
10C16 is really:
1 x 162
+ 0 x 161
+ C x 160
1 x 256 + 12 x 16
256 + 192
44810
In C, hex numbers are represented with a leading
“0x” (for example “0xa3” or “0x10c”).
Hexadecimal Number System
40. 40
CMPE12c Gabriel Hugh Elkaim
For any positional number system
•Base (radix): b
•Digits (symbols): 0 … b – 1
•Sn-1Sn-2….S2S1S0
Use summation to transform any base to
decimal
Value = Σ (Sibi
)
n-1
i=0
Positional Number System
42. 42
CMPE12c Gabriel Hugh Elkaim
Decimal → Binary Conversion
• Divide decimal value by 2 until the value is 0
• Know your powers of two and subtract
… 256 128 64 32 16 8 4 2 1
• Example: 42
• What is the biggest power of two that fits?
• What is the remainder?
• What fits?
• What is the remainder?
• What fits?
• What is the binary representation?
45. 45
CMPE12c Gabriel Hugh Elkaim
Binary → Octal Conversion
• Group into 3’s starting at least significant symbol
• Add leading 0’s if needed (why not trailing?)
• Write 1 octal digit for each group
• Examples:
100 010 111 (binary)
4 2 7 (octal)
10 101 110 (binary)
2 5 6 (octal)
46. 46
CMPE12c Gabriel Hugh Elkaim
Octal → Binary Conversion
It is simple, just write down the 3-bit binary code for
each octal digit
Octal Binary
0 000
1 001
2 010
3 011
4 100
5 101
6 110
7 111
47. 47
CMPE12c Gabriel Hugh Elkaim
Binary → Hex Conversion
• Group into 4’s starting at least significant symbol
| Adding leading 0’s if needed
• Write 1 hex digit for each group
• Examples:
1001 1110 0111 0000
9 e 7 0
0001 1111 1010 0011
1 f a 3
48. 48
CMPE12c Gabriel Hugh Elkaim
Hex → Binary Conversion
Again, simply write down the 4 bit binary code for
each hex digit
Example:
3 9 c 8
0011 1001 1100 1000
51. 51
CMPE12c Gabriel Hugh Elkaim
Hex → Octal
•Do it in 2 steps, hex → binary → octal
Decimal → Hex
•Do it in 2 steps, decimal → binary → hex
So why use hex and octal and not just binary
and decimal?
52. 52
CMPE12c Gabriel Hugh Elkaim
Negative Integers
• Most humans precede number with “-”
(e.g., -2000)
• Accountants, however, use parentheses:
(2000) or color 2000
• Sign-magnitude format
• Example: -1000 in hex?
100010 = 3 x 162
+ e x 161
+ 8 x 160
-3E816
53. 53
CMPE12c Gabriel Hugh Elkaim
Mesopotamians used positional fractions
Sqrt(2) = 1.24,51,1060
= 1 x 600
+ 24 x 60-1
+ 51 x 60-2
+
10 x 60-3
= 1.41422210
Most accurate approximation until the
Renaissance
54. 54
CMPE12c Gabriel Hugh Elkaim
fn-1
fn-2
… f2
f1
f0
f-1
f-2
f-3
… fm-1
Radix point
Generalized Representation
For a number “f” with ‘n’ digits to the left and ‘m’ to the right
of the decimal place
Position is the power
55. 55
CMPE12c Gabriel Hugh Elkaim
Fractional Representation
• What is 3E.8F16?
• How about 10.1012?
= 3 x 161
+ E x 160
+ 8 x 16-1
+ F x 16-2
= 48 + 14 + 8/16 + 15/256
= 1 x 21
+ 0 x 20
+ 1 x 2-1
+ 0 x 2-2
+ 1 x 2-3
= 2 + 0 + 1/2 + 1/8
56. 56
CMPE12c Gabriel Hugh Elkaim
More PNS Fractional Fun
• 21.0123 =
• 4.1335 =
• 22.617 =
• A.3A12 =
57. 57
CMPE12c Gabriel Hugh Elkaim
Converting Decimal → Binary fractions
• Consider left and right of the decimal point
separately.
• The stuff to the left can be converted to binary
as before.
• Use the following table/algorithm to convert the
fraction
58. 58
CMPE12c Gabriel Hugh Elkaim
Fraction Fraction x 2 Digit left of decimal point
0.8 1.6 1 most significant (f-1)
0.6 1.2 1
0.2 0.4 0
0.4 0.8 0
0.8 (it must repeat
from here!!)
• Different bases have different repeating fractions.
• 0.810 = 0.110011001100…2 = 0.11002
• Numbers can repeat in one base and not in another.
For 0.810 to binary