Number Systems - cse.uconn.eduzshi/course/cse2300/lecture1_numbersystems.pdf · Number Systems Z....
Transcript of Number Systems - cse.uconn.eduzshi/course/cse2300/lecture1_numbersystems.pdf · Number Systems Z....
![Page 1: Number Systems - cse.uconn.eduzshi/course/cse2300/lecture1_numbersystems.pdf · Number Systems Z. Jerry Shi Department of Computer Science and EngineeringDepartment of Computer Science](https://reader031.fdocuments.us/reader031/viewer/2022020316/5b3f9ba87f8b9a5e2c8c53dc/html5/thumbnails/1.jpg)
Number Systems
Z. Jerry ShiDepartment of Computer Science and EngineeringDepartment of Computer Science and Engineering
University of Connecticut
CSE2300W: Digital Logic Design
![Page 2: Number Systems - cse.uconn.eduzshi/course/cse2300/lecture1_numbersystems.pdf · Number Systems Z. Jerry Shi Department of Computer Science and EngineeringDepartment of Computer Science](https://reader031.fdocuments.us/reader031/viewer/2022020316/5b3f9ba87f8b9a5e2c8c53dc/html5/thumbnails/2.jpg)
Number systems
• Roman numerals:I 1II 2III 3IV 4V 5X 10XVII 17L 50C 100D 500M 1000…MMVI 2006
![Page 3: Number Systems - cse.uconn.eduzshi/course/cse2300/lecture1_numbersystems.pdf · Number Systems Z. Jerry Shi Department of Computer Science and EngineeringDepartment of Computer Science](https://reader031.fdocuments.us/reader031/viewer/2022020316/5b3f9ba87f8b9a5e2c8c53dc/html5/thumbnails/3.jpg)
Roman numerals
I (1), V(5), X(10), L(50), C(100), D (500), M(1000)• Rules
F l f i h– From left to right– The largest numeral possible is used first– A symbol is not repeated more than four times
Placing a small numeral in front of a large numeral indicates subtraction– Placing a small numeral in front of a large numeral indicates subtraction• The smaller one must be a power of 10 (I, X, or C)• Only one numeral each time
• To represent years:2010 : MMX 2763 : MMDCCLXIII1998 : MCMXCVIII 2751 : MMDCCLIN b f f h f di f R (4/21/753 BC)Number of years from the founding of Rome (4/21/753 BC)
• Very difficult to represent large numbers• Arithmetic is tough• Arithmetic is tough
A matchstick puzzle: I + XI = X ?
![Page 4: Number Systems - cse.uconn.eduzshi/course/cse2300/lecture1_numbersystems.pdf · Number Systems Z. Jerry Shi Department of Computer Science and EngineeringDepartment of Computer Science](https://reader031.fdocuments.us/reader031/viewer/2022020316/5b3f9ba87f8b9a5e2c8c53dc/html5/thumbnails/4.jpg)
Arabic system
• Arabic is a type of positional system– The value a digit represents depends on its positionThe value a digit represents depends on its position
• In Roman system, X is always 10. So XX = 20.
• Ten digits: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9• A digit’s value depends on its position
1712 = 1000 + 700 + 10 + 21712 1000 + 700 + 10 + 2
…x3x2x1x0.x-1… = 103 + 102 + 101 + 100 + 10 1… x3103 + x2102 + x1101 + x0100 + x-110-1 …
Here, the base is 10. We have ten digits, The value of a digit increases 10 times per position when it is moved to the left.
![Page 5: Number Systems - cse.uconn.eduzshi/course/cse2300/lecture1_numbersystems.pdf · Number Systems Z. Jerry Shi Department of Computer Science and EngineeringDepartment of Computer Science](https://reader031.fdocuments.us/reader031/viewer/2022020316/5b3f9ba87f8b9a5e2c8c53dc/html5/thumbnails/5.jpg)
Generalization
The base (or radix) r does not have to be 10It can be many other numbers Different number systemsy y
Suppose the radix of a number system is r >= 2.E h i i diff l i i di iEach position may r different values, requiring r digits.
The value of an n-digit radix r number isThe value of an n digit radix r number is
xn-1 xn-2…x2x1x0 = xn-1rn-1+ xn-2rn-2+…+ x2r2 + x1r1 + x0r0
0 <= xi < r Each digit has r choices.
![Page 6: Number Systems - cse.uconn.eduzshi/course/cse2300/lecture1_numbersystems.pdf · Number Systems Z. Jerry Shi Department of Computer Science and EngineeringDepartment of Computer Science](https://reader031.fdocuments.us/reader031/viewer/2022020316/5b3f9ba87f8b9a5e2c8c53dc/html5/thumbnails/6.jpg)
Common number systems (numeral systems)
Decimal system: r = 10, ten digits: 0…9Binary system: r = 2 two digits: 0 or 1 (bit)Binary system: r 2, two digits: 0 or 1 (bit)Octal system: r = 8, eight digits: 0…7Hexadecimal system: r = 16, 16 digits: 0…9A…Fy g
A16 = 1010, B16 = 1110, C16 = 1210, 16 10,D16 = 1310, E16 = 1410, F16 = 1510, 16 10,
![Page 7: Number Systems - cse.uconn.eduzshi/course/cse2300/lecture1_numbersystems.pdf · Number Systems Z. Jerry Shi Department of Computer Science and EngineeringDepartment of Computer Science](https://reader031.fdocuments.us/reader031/viewer/2022020316/5b3f9ba87f8b9a5e2c8c53dc/html5/thumbnails/7.jpg)
Examples
Decimal system: r = 10, ten digits: 0…9Binary system: r = 2, two digits: 0 or 1y y , g
…x3x2x1x0… = … x323 + x222 + x121 + x020 …
1001 2= 1×23 + 0×22 + 0×21 + 1×201×2 + 0×2 + 0×2 + 1×2= 8 + 0 + 0 + 1 = 9
0xABCD
![Page 8: Number Systems - cse.uconn.eduzshi/course/cse2300/lecture1_numbersystems.pdf · Number Systems Z. Jerry Shi Department of Computer Science and EngineeringDepartment of Computer Science](https://reader031.fdocuments.us/reader031/viewer/2022020316/5b3f9ba87f8b9a5e2c8c53dc/html5/thumbnails/8.jpg)
Question
• There are so many number systems, …
• How do I know which system to use? – Use the most convenient one– Have to meet all constraints
b diff ?• How can I convert a number to a different system?
![Page 9: Number Systems - cse.uconn.eduzshi/course/cse2300/lecture1_numbersystems.pdf · Number Systems Z. Jerry Shi Department of Computer Science and EngineeringDepartment of Computer Science](https://reader031.fdocuments.us/reader031/viewer/2022020316/5b3f9ba87f8b9a5e2c8c53dc/html5/thumbnails/9.jpg)
Number conversion (1)
(xn-1xn-2…x2x1x0)r
= x 1rn-1+ x 2rn-2+…+ x2r2 + x1r1 + x0r0 xn-1r xn-2r … x2r x1r x0r
Convert xi and r into the new systemDo addition and multiplication in the new system
Assume you can do arithmetic in the destination systemy yFor you, decimal system is the convenientFor computers, binary system is the most convenient
![Page 10: Number Systems - cse.uconn.eduzshi/course/cse2300/lecture1_numbersystems.pdf · Number Systems Z. Jerry Shi Department of Computer Science and EngineeringDepartment of Computer Science](https://reader031.fdocuments.us/reader031/viewer/2022020316/5b3f9ba87f8b9a5e2c8c53dc/html5/thumbnails/10.jpg)
To decimal numbers
You can convert numbers of any radix to decimal numbers
(1001)2= (1×23 + 0×22 + 0×21 + 1×20)10
8 0 0 1= 8 + 0 + 0 + 1 = 9
0xAB76 = 10 × 163 + 11 × 162 + 7 × 16 + 6 = 43894
![Page 11: Number Systems - cse.uconn.eduzshi/course/cse2300/lecture1_numbersystems.pdf · Number Systems Z. Jerry Shi Department of Computer Science and EngineeringDepartment of Computer Science](https://reader031.fdocuments.us/reader031/viewer/2022020316/5b3f9ba87f8b9a5e2c8c53dc/html5/thumbnails/11.jpg)
Another way
(xn-1xn-2…x2x1x0)r
= x rn-1+ x rn-2+ + x r2 + x r1 + x r0= xn-1r + xn-2r +…+ x2r + x1r + x0r= (…(xn-1r+ xn-2)r+xn-3)r…+ x2)r + x1)r + x0
(1001)2
= (((1×2 + 0)×2) + 0)×2 + 1(((1×2 + 0)×2) + 0)×2 + 1= 9
0xAB76 = 10 × 163 + 11 × 162 + 7 × 16 + 6
((10 × 16) 11) × 16 7 ) × 16 6= ((10 × 16) + 11) × 16 + 7 ) × 16 + 6
![Page 12: Number Systems - cse.uconn.eduzshi/course/cse2300/lecture1_numbersystems.pdf · Number Systems Z. Jerry Shi Department of Computer Science and EngineeringDepartment of Computer Science](https://reader031.fdocuments.us/reader031/viewer/2022020316/5b3f9ba87f8b9a5e2c8c53dc/html5/thumbnails/12.jpg)
If you are not familiar with the destination system, …
But you know the arithmetic in the source system.Assume the new radix is s.
V = (xn-1xn-2…x2x1x0)r = (ym-1ym-2…y2y1y0)s= (y 1y 2 y2y1) ×s + y (ym-1ym-2…y2y1)s ×s + y0
And y0 < sYou can compute y0 first: y0 = V mod s.
How about y1 ?(V – y0) / s = (ym-1ym-2…y2y1)s = (ym-1ym-2…y2)s ×s + y1
Then compute y2 : y2 = (V / s2) mod s.and so on… and so on
![Page 13: Number Systems - cse.uconn.eduzshi/course/cse2300/lecture1_numbersystems.pdf · Number Systems Z. Jerry Shi Department of Computer Science and EngineeringDepartment of Computer Science](https://reader031.fdocuments.us/reader031/viewer/2022020316/5b3f9ba87f8b9a5e2c8c53dc/html5/thumbnails/13.jpg)
Example: convert 78 to a binary number
26 = 64 25 = 32 24 = 16 23 = 8 22 = 4 21 = 2 20 = 1
1 2 4 9 19 39 78/2 = 0 /2 = 1 /2=2 /2 = 4 /2 = 9 /2 = 19 / 2 = 39/2 = 0 /2 = 1 /2=2 /2 = 4 /2 = 9 /2 = 19 / 2 = 391 0 0 1 1 1 0
(78) (1001110)(78)10 = (1001110)2
![Page 14: Number Systems - cse.uconn.eduzshi/course/cse2300/lecture1_numbersystems.pdf · Number Systems Z. Jerry Shi Department of Computer Science and EngineeringDepartment of Computer Science](https://reader031.fdocuments.us/reader031/viewer/2022020316/5b3f9ba87f8b9a5e2c8c53dc/html5/thumbnails/14.jpg)
Summary
A number in radix r system to radix s system• If you know how to compute in the destination systemIf you know how to compute in the destination system, …
• If you know how to compute in the source system, …y p y
• If it is difficult to compute in either system, …
![Page 15: Number Systems - cse.uconn.eduzshi/course/cse2300/lecture1_numbersystems.pdf · Number Systems Z. Jerry Shi Department of Computer Science and EngineeringDepartment of Computer Science](https://reader031.fdocuments.us/reader031/viewer/2022020316/5b3f9ba87f8b9a5e2c8c53dc/html5/thumbnails/15.jpg)
Binary to hexadecimal
• Method 1:– Convert the number to a decimal number firstConvert the number to a decimal number first
• Method 2:– Divide digits into groups of four– Convert each group to a hex digit
1110 0110 0001E 6 1
![Page 16: Number Systems - cse.uconn.eduzshi/course/cse2300/lecture1_numbersystems.pdf · Number Systems Z. Jerry Shi Department of Computer Science and EngineeringDepartment of Computer Science](https://reader031.fdocuments.us/reader031/viewer/2022020316/5b3f9ba87f8b9a5e2c8c53dc/html5/thumbnails/16.jpg)
Hexadecimal to binary
Convert each digit to a 4-digit binary number
(E61)16 = (1110 0110 0001)2
(ABCD)16 = (1010101111001101)2( )16 ( )2
How about octal numbers? binary to octal : divide digits into groups of 3octal to binary: convert each digit to a 3-digit binary numberoctal to binary: convert each digit to a 3 digit binary number
![Page 17: Number Systems - cse.uconn.eduzshi/course/cse2300/lecture1_numbersystems.pdf · Number Systems Z. Jerry Shi Department of Computer Science and EngineeringDepartment of Computer Science](https://reader031.fdocuments.us/reader031/viewer/2022020316/5b3f9ba87f8b9a5e2c8c53dc/html5/thumbnails/17.jpg)
Why can I do that?
(1110 0110 0001)2
= 1 × 211 + 1 × 210 + 1 × 29 + 0 × 28 +1 2 + 1 2 + 1 2 + 0 2 +0 × 27 + 1 × 26 + 1 × 25 + 0 × 24 +0 × 23 + 0 × 22 + 0 × 21 + 1 × 20
= (1 × 23 + 1 × 22 + 1 × 21 + 0 × 20) ×28 +(0 × 23 + 1 × 22 + 1 × 21 + 0 × 20 ) ×24 +(0 × 23 + 0 × 22 + 0 × 21 + 1 × 20) ×20
= (1 × 23 + 1 × 22 + 1 × 21 + 0 × 20) ×162 +(0 23 + 1 22 + 1 21 + 0 20 ) 161 +(0 × 23 + 1 × 22 + 1 × 21 + 0 × 20 ) ×161 +(0 × 23 + 0 × 22 + 0 × 21 + 1 × 20) ×160
= (E61)= (E61)16
![Page 18: Number Systems - cse.uconn.eduzshi/course/cse2300/lecture1_numbersystems.pdf · Number Systems Z. Jerry Shi Department of Computer Science and EngineeringDepartment of Computer Science](https://reader031.fdocuments.us/reader031/viewer/2022020316/5b3f9ba87f8b9a5e2c8c53dc/html5/thumbnails/18.jpg)
Shortcut methods
A number in radix r system to radix s system• If s = rmIf s r ,
– Divide the digits into groups of m– Convert each group to a digit in the destination system
• If r = sm,– Convert each digit to a m-digit number in the destination system
Exercise: Convert 45 to binary, octal, and hex numbers.
![Page 19: Number Systems - cse.uconn.eduzshi/course/cse2300/lecture1_numbersystems.pdf · Number Systems Z. Jerry Shi Department of Computer Science and EngineeringDepartment of Computer Science](https://reader031.fdocuments.us/reader031/viewer/2022020316/5b3f9ba87f8b9a5e2c8c53dc/html5/thumbnails/19.jpg)
How can I do the conversion faster?
• Memorize powers of 2• Memorize the binary representation of simple numbersMemorize the binary representation of simple numbers• Practice
– Do not use calculators for small numbers ( < 1000)– You are not allowed to use calculators in exams
![Page 20: Number Systems - cse.uconn.eduzshi/course/cse2300/lecture1_numbersystems.pdf · Number Systems Z. Jerry Shi Department of Computer Science and EngineeringDepartment of Computer Science](https://reader031.fdocuments.us/reader031/viewer/2022020316/5b3f9ba87f8b9a5e2c8c53dc/html5/thumbnails/20.jpg)
Jan 8, 2010 news
• Pi buster: French software whiz claims record– Fabrice Bellard calculated Pi to nearly 2.7 trillion decimal placesy p– Around 123 billion digits more than the previous record (2.577 trillion
decimal digits) set in August 2009 by Japanese professor Daisuke Takahashi
• Took 29 hours on T2K open supercomputer– It took 131 days on a computer that costs less than $3,000
• 103 for the computation in binary digits103 for the computation in binary digits• 13 days for verification• 12 days to convert the binary digits to a decimal • Three final days to check the conversionThree final days to check the conversion
![Page 21: Number Systems - cse.uconn.eduzshi/course/cse2300/lecture1_numbersystems.pdf · Number Systems Z. Jerry Shi Department of Computer Science and EngineeringDepartment of Computer Science](https://reader031.fdocuments.us/reader031/viewer/2022020316/5b3f9ba87f8b9a5e2c8c53dc/html5/thumbnails/21.jpg)
Addition and subtraction of numbers
Decimal numbers Binary numbers
6 5 3 9
7 1 6 3+
1 0 1 1
0 1 0 1
0 1 1 1+
0 1 1 11 0 1 1
3 7 0 2
0 1 1 1
1 1 0 0
![Page 22: Number Systems - cse.uconn.eduzshi/course/cse2300/lecture1_numbersystems.pdf · Number Systems Z. Jerry Shi Department of Computer Science and EngineeringDepartment of Computer Science](https://reader031.fdocuments.us/reader031/viewer/2022020316/5b3f9ba87f8b9a5e2c8c53dc/html5/thumbnails/22.jpg)
Addition table for binary numbers
Cin X Y Cout SCin X Y Cout S0 0 0 0 0 0 0 1 0 1 0 1 0 0 10 1 0 0 10 1 1 1 0 1 0 0 0 11 0 1 1 0 1 1 0 1 0 1 1 1 1 11 1 1 1 1
![Page 23: Number Systems - cse.uconn.eduzshi/course/cse2300/lecture1_numbersystems.pdf · Number Systems Z. Jerry Shi Department of Computer Science and EngineeringDepartment of Computer Science](https://reader031.fdocuments.us/reader031/viewer/2022020316/5b3f9ba87f8b9a5e2c8c53dc/html5/thumbnails/23.jpg)
Additions of binary numbers
![Page 24: Number Systems - cse.uconn.eduzshi/course/cse2300/lecture1_numbersystems.pdf · Number Systems Z. Jerry Shi Department of Computer Science and EngineeringDepartment of Computer Science](https://reader031.fdocuments.us/reader031/viewer/2022020316/5b3f9ba87f8b9a5e2c8c53dc/html5/thumbnails/24.jpg)
Subtraction of binary numbers
1 0 0 1
0 1 1 10 1 1 1−0 1 1 0
0 0 1 0
![Page 25: Number Systems - cse.uconn.eduzshi/course/cse2300/lecture1_numbersystems.pdf · Number Systems Z. Jerry Shi Department of Computer Science and EngineeringDepartment of Computer Science](https://reader031.fdocuments.us/reader031/viewer/2022020316/5b3f9ba87f8b9a5e2c8c53dc/html5/thumbnails/25.jpg)
Addition and subtraction of hex numbers
1 9 B 9
Hex numbers Hex numbers
E 1 9 F1 9 B 9
C 7 E 6+
0 1 1 0
E 1 9 F
1 9 B 9−0 1 1 00 1 1 0
E 1 9 F
0 1 1 0
C 7 E 6
![Page 26: Number Systems - cse.uconn.eduzshi/course/cse2300/lecture1_numbersystems.pdf · Number Systems Z. Jerry Shi Department of Computer Science and EngineeringDepartment of Computer Science](https://reader031.fdocuments.us/reader031/viewer/2022020316/5b3f9ba87f8b9a5e2c8c53dc/html5/thumbnails/26.jpg)
Which system are these numbers in?
34 + 23 = 112
(3r + 4) + (2r + 3) = (r2 + r + 2)r2 – 4r – 5 = 0
r = 5 or r = – 1or r 1
You may also make an educated guess:4 + 3 = 7 = c × r + 2c is either 0 or 1 for addition
![Page 27: Number Systems - cse.uconn.eduzshi/course/cse2300/lecture1_numbersystems.pdf · Number Systems Z. Jerry Shi Department of Computer Science and EngineeringDepartment of Computer Science](https://reader031.fdocuments.us/reader031/viewer/2022020316/5b3f9ba87f8b9a5e2c8c53dc/html5/thumbnails/27.jpg)
Negative numbers: signed-magnitude
• For non-negative numbers, n bits can present 2n numbers: 0, 1, 2, …, 2n – 1,
• Signed-magnitude representation– A bit indicates the sign
• 0 = positive, 1 = negative– There are two 0’s: +0 and – 0– n bits represent 2n – 1 numbers:n bits represent 2 1 numbers:
– ( 2n – 1 – 1), …, – 1, 0, 1, 2, …, 2n – 1 – 1 – Arithmetic is difficult
![Page 28: Number Systems - cse.uconn.eduzshi/course/cse2300/lecture1_numbersystems.pdf · Number Systems Z. Jerry Shi Department of Computer Science and EngineeringDepartment of Computer Science](https://reader031.fdocuments.us/reader031/viewer/2022020316/5b3f9ba87f8b9a5e2c8c53dc/html5/thumbnails/28.jpg)
Addition of signed-magnitude numbers
// each number has a sign and a magnitude (mag)Add (x, y)
if x.sign == y.sign // 5 + 3, (-4) + (-2)sum.sign = x.signsum.mag = x.mag + y.mag
else if x.mag > y.mag // 5 + (-2), -4 + 3 sum.sign = x.signsum.mag = x.mag – y.mag
else // (-2) + 5, 3 + (-4)sum.sign = y.signsum.mag = y.mag – x.mag
// another ‘if’ statement can remove -0. // How about subtraction?
![Page 29: Number Systems - cse.uconn.eduzshi/course/cse2300/lecture1_numbersystems.pdf · Number Systems Z. Jerry Shi Department of Computer Science and EngineeringDepartment of Computer Science](https://reader031.fdocuments.us/reader031/viewer/2022020316/5b3f9ba87f8b9a5e2c8c53dc/html5/thumbnails/29.jpg)
Complement number systems
• We deal with a fixed number of digits, say, n digits• We focus on radix complement number
Ten’s complement for decimal numbers (r = 10)– Ten s complement for decimal numbers (r = 10)– Two’s complement for binary numbers (r = 2)
• Easy to perform additon/subtraction• The complement of an n-digit number is rn – xThe complement of an n digit number is r x
– The complement of rn – x is x
Example: 3-digit ten’s complement numbersunsigned: 000, 001, 002, …, 999
The complement of 1 is 999 = 1000 – 1The complement of 2 is 998 = 1000 – 2The complement of 3 is 997 = 1000 – 3…The complement of 999 is 1 = 1000 – 999The complement of 0 is 000 = 1000 – 0
![Page 30: Number Systems - cse.uconn.eduzshi/course/cse2300/lecture1_numbersystems.pdf · Number Systems Z. Jerry Shi Department of Computer Science and EngineeringDepartment of Computer Science](https://reader031.fdocuments.us/reader031/viewer/2022020316/5b3f9ba87f8b9a5e2c8c53dc/html5/thumbnails/30.jpg)
Changing the radix to 2
• r = 2, n = 8
• rn = 256• r = 256
Unsigned numbers: 0, 1, 2, …, 254, 255Unsigned numbers: 0, 1, 2, …, 254, 255The complements: 0, 255, 254, …, 2, 1
How to compute the complements?Either in decimal system or binary system1 0000 0000 – 1111 1010 = 1111 1111 – 1111 1010 + 1
1) Complement every bit and 2) add 1 to the flipped bits
![Page 31: Number Systems - cse.uconn.eduzshi/course/cse2300/lecture1_numbersystems.pdf · Number Systems Z. Jerry Shi Department of Computer Science and EngineeringDepartment of Computer Science](https://reader031.fdocuments.us/reader031/viewer/2022020316/5b3f9ba87f8b9a5e2c8c53dc/html5/thumbnails/31.jpg)
3-bit two’s complement numbers
Bits Binary Two’s complement
The complement of 1 : – 1The complement of 2 : – 2
000 0
001 1
0
1
The complement of 2 : 2 The complement of 3 : – 3 The complement of 4 : – 4
010 2
011 3
2
3
How do you tell the sign of a two’s complement number?
100 4
101 5
– 4
3
How do you change the sign of a two’s complement
number?101 5
110 6
– 3
– 2
number?
111 7 – 1
![Page 32: Number Systems - cse.uconn.eduzshi/course/cse2300/lecture1_numbersystems.pdf · Number Systems Z. Jerry Shi Department of Computer Science and EngineeringDepartment of Computer Science](https://reader031.fdocuments.us/reader031/viewer/2022020316/5b3f9ba87f8b9a5e2c8c53dc/html5/thumbnails/32.jpg)
Two’s complement numbers
n bitsUnsigned: 0, 1, 2, …, 2n–1 – 1, 2n–1 , 2n–1+1, …, 2n – 1g , , , , , , , ,Two’s complement: – 2n–1 … – 1,0, 1, 2, …, 2n–1 – 1
n = 8: 128 1 0 127n = 8: – 128,…, – 1, 0, …, 127n = 9: – 256, …, – 1, 0, …, 255
Consider a value xIf 0 ≤ x ≤ 2n–1 – 1,
x has the same representations (left-most bit is 0)If – 2n–1 ≤ x ≤ – 1,
x is represented with the complement of |x|x is represented with the complement of |x|
![Page 33: Number Systems - cse.uconn.eduzshi/course/cse2300/lecture1_numbersystems.pdf · Number Systems Z. Jerry Shi Department of Computer Science and EngineeringDepartment of Computer Science](https://reader031.fdocuments.us/reader031/viewer/2022020316/5b3f9ba87f8b9a5e2c8c53dc/html5/thumbnails/33.jpg)
8-bit two’s complement numbers
Unsigned: 0, …, 255Two’s complement: –128, –127, …, –1, 0, 1, …127
Representation is the same for 0, .., 127.–128 –1 in two’s complement system are represented as128, …, 1, in two s complement system are represented as 128, …, 255 in unsigned binary system, respectively.
Decimal Abs. value Complement Bits
–128 128 128 = 256 – 128 1000 0000–127 127 129 = 256 – 127 1000 0001–127 127 129 256 – 127 1000 0001
–2 2 254 = 256 – 2 1111 1110–1 1 255 = 256 – 1 1111 1111
![Page 34: Number Systems - cse.uconn.eduzshi/course/cse2300/lecture1_numbersystems.pdf · Number Systems Z. Jerry Shi Department of Computer Science and EngineeringDepartment of Computer Science](https://reader031.fdocuments.us/reader031/viewer/2022020316/5b3f9ba87f8b9a5e2c8c53dc/html5/thumbnails/34.jpg)
Convert decimal numbers to two’s complement numbers
Make sure you can represent the number.n bits: – 2n–1 to 2n–1 – 1
To find out the 2’s complement representation of x:
If x ≥ 0, it is the same as unsigned binary representation.If x < 0 it is the unsigned binary representation of the complement of |x|If x < 0, it is the unsigned binary representation of the complement of |x|.
You can find out the complement of |x| either in decimal system or in binary system.
Example: x = (– 119) n = 8Example: x = (– 119), n = 8. 1. Represent |x| as 8-bit binary number: |x| = 11910 = 0111 011122. Find out the complement of |x|:
Complement all the bits: 1000 10002Add 1 to the complemented bits: 1000 1001Add 1 to the complemented bits: 1000 10012
Another way:1. Find out the complement of |x| in decimal system. It is 256 – 119 = 137.2. Convert 137 to an 8-bit binary number.
![Page 35: Number Systems - cse.uconn.eduzshi/course/cse2300/lecture1_numbersystems.pdf · Number Systems Z. Jerry Shi Department of Computer Science and EngineeringDepartment of Computer Science](https://reader031.fdocuments.us/reader031/viewer/2022020316/5b3f9ba87f8b9a5e2c8c53dc/html5/thumbnails/35.jpg)
Line to circle
0000
1001
2010
− 1 111
4100
5101
6110
3011
7111
81000
91001000 001 010111 100 101 110011 111 1000 1001
0000
81000
9− 1 000
1001
7111
1001 1
111
20106
110− 2 111 110
3
111
4100
0115101
![Page 36: Number Systems - cse.uconn.eduzshi/course/cse2300/lecture1_numbersystems.pdf · Number Systems Z. Jerry Shi Department of Computer Science and EngineeringDepartment of Computer Science](https://reader031.fdocuments.us/reader031/viewer/2022020316/5b3f9ba87f8b9a5e2c8c53dc/html5/thumbnails/36.jpg)
Two’s complement numbers and modulo 8 arithmetic
000 – 8 0 8
001 – 7 1 9
010 – 6 2 10
011 – 5 3 11
100 – 4 4 12100 4 4 12
101 – 3 5 13
110 2 6 14110 – 2 6 14
111 – 1 7 15
You can consider it is modulo 8 arithmetic
![Page 37: Number Systems - cse.uconn.eduzshi/course/cse2300/lecture1_numbersystems.pdf · Number Systems Z. Jerry Shi Department of Computer Science and EngineeringDepartment of Computer Science](https://reader031.fdocuments.us/reader031/viewer/2022020316/5b3f9ba87f8b9a5e2c8c53dc/html5/thumbnails/37.jpg)
Modular arithmetic
• Modulus: the numbers wrap around after reaching the value– Consider the example of clockConsider the example of clock
• If the modulus is n >= 2, the unique values in the system is n• Two integers a and b are said to be congruent modulo n if their
difference is an integer multiple of na = b mod na = b mod n
3 = 8 = 18 = 103 mod 5• Same rules for negative numbers
– 9 = – 1 = 7 = 15 mod 8• Basically, you do the operation of finding the postive remainder
![Page 38: Number Systems - cse.uconn.eduzshi/course/cse2300/lecture1_numbersystems.pdf · Number Systems Z. Jerry Shi Department of Computer Science and EngineeringDepartment of Computer Science](https://reader031.fdocuments.us/reader031/viewer/2022020316/5b3f9ba87f8b9a5e2c8c53dc/html5/thumbnails/38.jpg)
Convert two’s complement numbers to decimal numbers
• If the sign bit is 0, consider it as an unsigned binary number– A 1 at bit i is 2i
• If the sign bit is 1, it is a negative number• Method 1:
– Find out the complement in binary systemConvert the complement to a decimal number– Convert the complement to a decimal number
– Add the sign• Method 2:
– A 1 at bit i is 2i for i < n – 1 while the weight of bit n – 1 is – 2n – 1
These two methods are essentially the same.
Example: What is the decimal value of the 4-bit two’s complement number 1001?
Method 1: The complement is 0111. So the decimal value is – 7.
Method 2: The value is – 8 + 1 = – 7.
![Page 39: Number Systems - cse.uconn.eduzshi/course/cse2300/lecture1_numbersystems.pdf · Number Systems Z. Jerry Shi Department of Computer Science and EngineeringDepartment of Computer Science](https://reader031.fdocuments.us/reader031/viewer/2022020316/5b3f9ba87f8b9a5e2c8c53dc/html5/thumbnails/39.jpg)
Why two’s complement numbers?
• Same circuit to add unsigned binary numbers and two’s complement numbersp– Follow the same rules
• Subtraction is easy: x – y = x + (– y)– Computing – y is simple: flip bits and add 1
![Page 40: Number Systems - cse.uconn.eduzshi/course/cse2300/lecture1_numbersystems.pdf · Number Systems Z. Jerry Shi Department of Computer Science and EngineeringDepartment of Computer Science](https://reader031.fdocuments.us/reader031/viewer/2022020316/5b3f9ba87f8b9a5e2c8c53dc/html5/thumbnails/40.jpg)
Wheel for unsigned binary nubmers
![Page 41: Number Systems - cse.uconn.eduzshi/course/cse2300/lecture1_numbersystems.pdf · Number Systems Z. Jerry Shi Department of Computer Science and EngineeringDepartment of Computer Science](https://reader031.fdocuments.us/reader031/viewer/2022020316/5b3f9ba87f8b9a5e2c8c53dc/html5/thumbnails/41.jpg)
Wheel for two’s complement numbers
![Page 42: Number Systems - cse.uconn.eduzshi/course/cse2300/lecture1_numbersystems.pdf · Number Systems Z. Jerry Shi Department of Computer Science and EngineeringDepartment of Computer Science](https://reader031.fdocuments.us/reader031/viewer/2022020316/5b3f9ba87f8b9a5e2c8c53dc/html5/thumbnails/42.jpg)
Addition and subtraction of two’s complement numbers
1 1 1 0 2’s complement Binary1 1 1 0
0 0 0 1+
0 0 0 0
p
–2
1
y
14
1
1 1 1 1 –1 15
0101 1001
+ 1001 0010
89
– 110
89
1461001 0010
1110 1011
110
–21
146
235
![Page 43: Number Systems - cse.uconn.eduzshi/course/cse2300/lecture1_numbersystems.pdf · Number Systems Z. Jerry Shi Department of Computer Science and EngineeringDepartment of Computer Science](https://reader031.fdocuments.us/reader031/viewer/2022020316/5b3f9ba87f8b9a5e2c8c53dc/html5/thumbnails/43.jpg)
Overflow
• Addition or subtraction may result in overflow– Results are not in the range– Crossing the lower bound is also called underflow
• Unsigned numbers:Unsigned numbers: – Carry from the highest bit (the most significant bit) indicates an overflow4-bit unsigned numbers: 5 + 13 = 18 5 – 13 = – 8
• Two complement’s numbers– Cin != Cout for the highest bit indicates an overflow
• Sign is not changed– The MSB of two numbers are the same, but the result has a different sign
• Two numbers with different signs do not cause overflowg
![Page 44: Number Systems - cse.uconn.eduzshi/course/cse2300/lecture1_numbersystems.pdf · Number Systems Z. Jerry Shi Department of Computer Science and EngineeringDepartment of Computer Science](https://reader031.fdocuments.us/reader031/viewer/2022020316/5b3f9ba87f8b9a5e2c8c53dc/html5/thumbnails/44.jpg)
When you are coding in C
char a; /* 8-bit, signed */unsigned char b; /* 8-bit, unsigned */g ; , gshort c; /* 16-bit, signed */unsigned short d; /* 16-bit, unsigned */i 0 1 /* 32 bi i d */int e0, e1; /* 32-bit, signed */unsigned int f0, f1; /* 32-bit, unsigned */
/* Read the manual of the compiler you are using */e0 + e1 /* 32-bit addition */f0 + f1 /* 32-bit addition *//* does not matter when you do additions *//* however when you compare values be careful *// however, when you compare values, be careful /
![Page 45: Number Systems - cse.uconn.eduzshi/course/cse2300/lecture1_numbersystems.pdf · Number Systems Z. Jerry Shi Department of Computer Science and EngineeringDepartment of Computer Science](https://reader031.fdocuments.us/reader031/viewer/2022020316/5b3f9ba87f8b9a5e2c8c53dc/html5/thumbnails/45.jpg)
Changing the number of bits in a number
• Add more bits to binary numbers, e.g., 8-bit to 16-bit– Unsigned binary numbers: Add 0’s to the left– Two’s complement numbers: sign extension (duplicate the sign bit)1000 0000 1111 1111 1000 00000010 1010 0000 0000 0010 10100010 1010 0000 0000 0010 1010
• Reduce the number of bits in a binary number, e.g., 16-bit to 8-bit– Unsigned numbers:
• Check whether the removed bits are 0– Two’s complement numbers:
• Check whether the removed bits are the same and whether the sign has been changed during the conversion
![Page 46: Number Systems - cse.uconn.eduzshi/course/cse2300/lecture1_numbersystems.pdf · Number Systems Z. Jerry Shi Department of Computer Science and EngineeringDepartment of Computer Science](https://reader031.fdocuments.us/reader031/viewer/2022020316/5b3f9ba87f8b9a5e2c8c53dc/html5/thumbnails/46.jpg)
Binary code for decimal numbers (BCD)
• Four bits represent a single decimal digit from 0 to 9, instead of 0 to 15
Decimal Binary 0 0000 1 0001– 8 bits to represent 1010. 1 00012 0010 3 0011 4 01005 0101 6 0110 7 0111 8 10009 1001
NOT USED 1010 NOT USED 1011NOT USED 1011NOT USED 1100 NOT USED 1101 NOT USED 1110NOT USED 1110NOT USED 1111
![Page 47: Number Systems - cse.uconn.eduzshi/course/cse2300/lecture1_numbersystems.pdf · Number Systems Z. Jerry Shi Department of Computer Science and EngineeringDepartment of Computer Science](https://reader031.fdocuments.us/reader031/viewer/2022020316/5b3f9ba87f8b9a5e2c8c53dc/html5/thumbnails/47.jpg)
Gray code
• Two adjacent numbers have only one different bit – Named after Frank Gray (Bell Labs)Named after Frank Gray (Bell Labs)
![Page 48: Number Systems - cse.uconn.eduzshi/course/cse2300/lecture1_numbersystems.pdf · Number Systems Z. Jerry Shi Department of Computer Science and EngineeringDepartment of Computer Science](https://reader031.fdocuments.us/reader031/viewer/2022020316/5b3f9ba87f8b9a5e2c8c53dc/html5/thumbnails/48.jpg)
Gray code
• Recursive:One bit : 0 1T o bits: 00 01 11 10Two bits: 00 01 11 10Three bits: 000 001 011 010 110, 111, 101, 100And so on:
Pattern is 0 1 1 0, instead of 0 1 0 1
• Gray code was also known as reflected binary codey y– Repeat lower (n – 1) bits in the reversed order – Add the leading 0 for the first half and 1 for the second half
• Directly from binary code– bit i and (i + 1) are the same, bit i in gray code is 0. It’s 1 otherwise.
0111 0100bi 0 1 d 2 h i h bi d bi 0 d 1 0 i h dbits 0, 1, and 2 are the same in the binary code, so bits 0 and 1 are 0 in the gray code
![Page 49: Number Systems - cse.uconn.eduzshi/course/cse2300/lecture1_numbersystems.pdf · Number Systems Z. Jerry Shi Department of Computer Science and EngineeringDepartment of Computer Science](https://reader031.fdocuments.us/reader031/viewer/2022020316/5b3f9ba87f8b9a5e2c8c53dc/html5/thumbnails/49.jpg)
ASCII (American Standard Code for Information Interchange)
• Each character is represented with 7 bits with a leading 0– How is CSE2300 stored in computer memory?p y
• Many other encoding schemes (such as Unicode)