cse1301 computer programming lecture 32: number representation
DESCRIPTION
Topics Representing characters and integers Converting binary to decimal Converting decimal to binary Adding binary numbers LimitationsTRANSCRIPT
![Page 1: CSE1301 Computer Programming Lecture 32: Number Representation](https://reader035.vdocuments.site/reader035/viewer/2022062401/5a4d1afd7f8b9ab059984e54/html5/thumbnails/1.jpg)
1
CSE1301Computer Programming
Lecture 32:Number Representation
![Page 2: CSE1301 Computer Programming Lecture 32: Number Representation](https://reader035.vdocuments.site/reader035/viewer/2022062401/5a4d1afd7f8b9ab059984e54/html5/thumbnails/2.jpg)
2
Topics
• Representing characters and integers• Converting binary to decimal• Converting decimal to binary• Adding binary numbers• Limitations
![Page 3: CSE1301 Computer Programming Lecture 32: Number Representation](https://reader035.vdocuments.site/reader035/viewer/2022062401/5a4d1afd7f8b9ab059984e54/html5/thumbnails/3.jpg)
3
Representing Characters
• ASCII encoding (American Standard Code for Information Interchange)
• Each character represented by a one-byte (8-bit) number
• Other representations possible too:– EBCDIC (used by older IBM machines)– Unicode (16-bit character codes, provides
enough codes for characters from all modern languages)
![Page 4: CSE1301 Computer Programming Lecture 32: Number Representation](https://reader035.vdocuments.site/reader035/viewer/2022062401/5a4d1afd7f8b9ab059984e54/html5/thumbnails/4.jpg)
4
Representing Integers
• We represent integers using a base-10 positional notation.
• So the number 80710 means:8104 + 0103 + 7102 + 1101 + 0100
![Page 5: CSE1301 Computer Programming Lecture 32: Number Representation](https://reader035.vdocuments.site/reader035/viewer/2022062401/5a4d1afd7f8b9ab059984e54/html5/thumbnails/5.jpg)
5
Representing Integers
• Computers represent integers using a base-2 positional notation.
• So the number 101011 means:
125 + 024 + 123 + 022 + 121 + 120
132 + 016 + 18 + 04 + 12 + 11
= 43 in decimal
![Page 6: CSE1301 Computer Programming Lecture 32: Number Representation](https://reader035.vdocuments.site/reader035/viewer/2022062401/5a4d1afd7f8b9ab059984e54/html5/thumbnails/6.jpg)
6
Representing Integers
• Curiously, ye Olde Englishe pub-keepers used the same system:
• So the number 101011 means:
1gallon + 0pottle + 1quart + 0pint + 1chopin + 1gill
14.6l + 02.3l + 11.1l + 00.6l + 10.3l + 10.1l
= 6.1 litres
![Page 7: CSE1301 Computer Programming Lecture 32: Number Representation](https://reader035.vdocuments.site/reader035/viewer/2022062401/5a4d1afd7f8b9ab059984e54/html5/thumbnails/7.jpg)
7
Representing Integers• The first few binary numbers are:
0000....................00001....................10010....................20011....................30100....................40101....................50110....................60111....................71000....................81001....................91010....................101011....................111100....................121101....................131110....................141111....................15
![Page 8: CSE1301 Computer Programming Lecture 32: Number Representation](https://reader035.vdocuments.site/reader035/viewer/2022062401/5a4d1afd7f8b9ab059984e54/html5/thumbnails/8.jpg)
8
Converting binary to decimal
Example: Convert the unsigned binary number 10011010 to decimal.
01011001
![Page 9: CSE1301 Computer Programming Lecture 32: Number Representation](https://reader035.vdocuments.site/reader035/viewer/2022062401/5a4d1afd7f8b9ab059984e54/html5/thumbnails/9.jpg)
9
Converting binary to decimal
01011001
2021222324252627
01234567
![Page 10: CSE1301 Computer Programming Lecture 32: Number Representation](https://reader035.vdocuments.site/reader035/viewer/2022062401/5a4d1afd7f8b9ab059984e54/html5/thumbnails/10.jpg)
10
Converting binary to decimal
0101100101234567
64 12481632128
![Page 11: CSE1301 Computer Programming Lecture 32: Number Representation](https://reader035.vdocuments.site/reader035/viewer/2022062401/5a4d1afd7f8b9ab059984e54/html5/thumbnails/11.jpg)
11
Converting binary to decimal
0101100101234567
64 12481632128
128 + 16 + 8 + 2 = 154 (or 27 + 24 + 23 + 21)
So, 10011010 in unsigned binary is 154 in decimal.
![Page 12: CSE1301 Computer Programming Lecture 32: Number Representation](https://reader035.vdocuments.site/reader035/viewer/2022062401/5a4d1afd7f8b9ab059984e54/html5/thumbnails/12.jpg)
12
Converting Decimal to/from Binary
Analogy: Giving a $69.10 change from largest to smallest denomination:
69.10 = 1 $50 bill + 19.10
19.10 = 1 $10 bill + 9.10
9.10 = 1 $5 bill + 4.10
4.10 = 2 $2 coin + 0.10
0.10 = 1 10c coin
![Page 13: CSE1301 Computer Programming Lecture 32: Number Representation](https://reader035.vdocuments.site/reader035/viewer/2022062401/5a4d1afd7f8b9ab059984e54/html5/thumbnails/13.jpg)
13
25 20212223242627
01234567
Converting Decimal to/from Binary
Bit position.
Decimal value.
![Page 14: CSE1301 Computer Programming Lecture 32: Number Representation](https://reader035.vdocuments.site/reader035/viewer/2022062401/5a4d1afd7f8b9ab059984e54/html5/thumbnails/14.jpg)
14
1248163264128
01234567
Converting Decimal to/from Binary
Bit position.
Decimal value.
![Page 15: CSE1301 Computer Programming Lecture 32: Number Representation](https://reader035.vdocuments.site/reader035/viewer/2022062401/5a4d1afd7f8b9ab059984e54/html5/thumbnails/15.jpg)
15
Decimal to Binary
Example: Convert the decimal number 105 to unsigned binary.
![Page 16: CSE1301 Computer Programming Lecture 32: Number Representation](https://reader035.vdocuments.site/reader035/viewer/2022062401/5a4d1afd7f8b9ab059984e54/html5/thumbnails/16.jpg)
16
Q. What is the highest power of 2 that is less than or equal to 105?
A. 64
164 12481632
0123456
Next, consider the difference: 105 - 64 = 41
128
![Page 17: CSE1301 Computer Programming Lecture 32: Number Representation](https://reader035.vdocuments.site/reader035/viewer/2022062401/5a4d1afd7f8b9ab059984e54/html5/thumbnails/17.jpg)
17
1
Q. What is the highest power of 2 that is less than or equal to 41?
A. 32
11248163264
0123456
Next, consider the difference: 41 - 32 = 9
![Page 18: CSE1301 Computer Programming Lecture 32: Number Representation](https://reader035.vdocuments.site/reader035/viewer/2022062401/5a4d1afd7f8b9ab059984e54/html5/thumbnails/18.jpg)
18
1
Q. What is the highest power of 2 that is less than or equal to 9?
A. 8
1 11248163264
0123456
Next, consider the difference: 9 - 8 = 1
![Page 19: CSE1301 Computer Programming Lecture 32: Number Representation](https://reader035.vdocuments.site/reader035/viewer/2022062401/5a4d1afd7f8b9ab059984e54/html5/thumbnails/19.jpg)
19
1
Q. What is the highest power of 2 that is less than or equal to 1?
A. 1
11 11248163264
0123456
Next, consider the difference: 1 - 1 = 0 Done!
![Page 20: CSE1301 Computer Programming Lecture 32: Number Representation](https://reader035.vdocuments.site/reader035/viewer/2022062401/5a4d1afd7f8b9ab059984e54/html5/thumbnails/20.jpg)
20
1
Finally, fill the empty boxes with zeros.
1001011248163264
0123456
So, 105 decimal is 1101001 in unsigned binary.
![Page 21: CSE1301 Computer Programming Lecture 32: Number Representation](https://reader035.vdocuments.site/reader035/viewer/2022062401/5a4d1afd7f8b9ab059984e54/html5/thumbnails/21.jpg)
21
Converting decimal to binary
• We've seen that you convert binary to decimal by multiplying and adding.
• So it's no surprise that you convert decimal to binary by dividing and subtracting.
• You can also convert decimal to binary by dividing and noting the remainder.
![Page 22: CSE1301 Computer Programming Lecture 32: Number Representation](https://reader035.vdocuments.site/reader035/viewer/2022062401/5a4d1afd7f8b9ab059984e54/html5/thumbnails/22.jpg)
22
Converting decimal to binary123 ÷2
61 remainder 1 ÷2
30 remainder 1 ÷2
15 remainder 0 ÷2
7 remainder 1 ÷2
3 remainder 1 ÷2
1 remainder 1 ÷2
0 remainder 1
![Page 23: CSE1301 Computer Programming Lecture 32: Number Representation](https://reader035.vdocuments.site/reader035/viewer/2022062401/5a4d1afd7f8b9ab059984e54/html5/thumbnails/23.jpg)
23
Converting decimal to binary123 ÷2
61 remainder 1 ÷2
30 remainder 1 ÷2
15 remainder 0 ÷2
7 remainder 1 ÷2
3 remainder 1 ÷2
1 remainder 1 ÷2
0 remainder 1
![Page 24: CSE1301 Computer Programming Lecture 32: Number Representation](https://reader035.vdocuments.site/reader035/viewer/2022062401/5a4d1afd7f8b9ab059984e54/html5/thumbnails/24.jpg)
24
Converting decimal to binary123 1111011 ÷261 remainder 1 ÷230 remainder 1 ÷215 remainder 0 ÷27 remainder 1 ÷23 remainder 1 ÷21 remainder 1 ÷20 remainder 1
![Page 25: CSE1301 Computer Programming Lecture 32: Number Representation](https://reader035.vdocuments.site/reader035/viewer/2022062401/5a4d1afd7f8b9ab059984e54/html5/thumbnails/25.jpg)
25
Converting decimal to binary102 ÷2
51 remainder 0 ÷2
25 remainder 1 ÷2
12 remainder 1 ÷2
6 remainder 0 ÷2
3 remainder 0 ÷2
1 remainder 1 ÷2
0 remainder 1
![Page 26: CSE1301 Computer Programming Lecture 32: Number Representation](https://reader035.vdocuments.site/reader035/viewer/2022062401/5a4d1afd7f8b9ab059984e54/html5/thumbnails/26.jpg)
26
Converting decimal to binary102 ÷2
51 remainder 0 ÷2
25 remainder 1 ÷2
12 remainder 1 ÷2
6 remainder 0 ÷2
3 remainder 0 ÷2
1 remainder 1 ÷2
0 remainder 1
![Page 27: CSE1301 Computer Programming Lecture 32: Number Representation](https://reader035.vdocuments.site/reader035/viewer/2022062401/5a4d1afd7f8b9ab059984e54/html5/thumbnails/27.jpg)
27
102 1100110 ÷2
51 remainder 0 ÷2
25 remainder 1 ÷2
12 remainder 1 ÷2
6 remainder 0 ÷2
3 remainder 0 ÷2
1 remainder 1 ÷2
0 remainder 1
Converting decimal to binary
![Page 28: CSE1301 Computer Programming Lecture 32: Number Representation](https://reader035.vdocuments.site/reader035/viewer/2022062401/5a4d1afd7f8b9ab059984e54/html5/thumbnails/28.jpg)
28
102 1100110 ÷251 remainder 0 ÷225 remainder 1 ÷212 remainder 1 ÷26 remainder 0 ÷23 remainder 0 ÷21 remainder 1 ÷20 remainder 1
Converting decimal to binary
Most significant
bit
![Page 29: CSE1301 Computer Programming Lecture 32: Number Representation](https://reader035.vdocuments.site/reader035/viewer/2022062401/5a4d1afd7f8b9ab059984e54/html5/thumbnails/29.jpg)
29
102 1100110 ÷251 remainder 0 ÷225 remainder 1 ÷212 remainder 1 ÷26 remainder 0 ÷23 remainder 0 ÷21 remainder 1 ÷20 remainder 1
Converting decimal to binary
Least significant
bit
![Page 30: CSE1301 Computer Programming Lecture 32: Number Representation](https://reader035.vdocuments.site/reader035/viewer/2022062401/5a4d1afd7f8b9ab059984e54/html5/thumbnails/30.jpg)
30
Adding binary numbers• For individual bits there are only four
possibilities:
0 0 1 1 + 0 + 1 + 0 + 1
0 1 1 10
![Page 31: CSE1301 Computer Programming Lecture 32: Number Representation](https://reader035.vdocuments.site/reader035/viewer/2022062401/5a4d1afd7f8b9ab059984e54/html5/thumbnails/31.jpg)
31
Adding binary numbers• For multiple digits we do the same as in
base-10: we add corresponding bits and carry the twos:
11100101+ 1011101
![Page 32: CSE1301 Computer Programming Lecture 32: Number Representation](https://reader035.vdocuments.site/reader035/viewer/2022062401/5a4d1afd7f8b9ab059984e54/html5/thumbnails/32.jpg)
32
Adding binary numbers• For multiple digits we do the same as in
base-10: we add corresponding bits and carry the twos.
1 11100101
+ 10111010
![Page 33: CSE1301 Computer Programming Lecture 32: Number Representation](https://reader035.vdocuments.site/reader035/viewer/2022062401/5a4d1afd7f8b9ab059984e54/html5/thumbnails/33.jpg)
33
Adding binary numbers• For multiple digits we do the same as in
base-10: we add corresponding bits and carry the twos: 1
11100101+ 1011101
10
![Page 34: CSE1301 Computer Programming Lecture 32: Number Representation](https://reader035.vdocuments.site/reader035/viewer/2022062401/5a4d1afd7f8b9ab059984e54/html5/thumbnails/34.jpg)
34
Adding binary numbers• For multiple digits we do the same as in
base-10: we add corresponding bits and carry the twos:
1 1 11100101
+ 1011101010
![Page 35: CSE1301 Computer Programming Lecture 32: Number Representation](https://reader035.vdocuments.site/reader035/viewer/2022062401/5a4d1afd7f8b9ab059984e54/html5/thumbnails/35.jpg)
35
Adding binary numbers• For multiple digits we do the same as in
base-10: we add corresponding bits and carry the twos: 1 1 1
11100101+ 1011101
0010
![Page 36: CSE1301 Computer Programming Lecture 32: Number Representation](https://reader035.vdocuments.site/reader035/viewer/2022062401/5a4d1afd7f8b9ab059984e54/html5/thumbnails/36.jpg)
36
Adding binary numbers• For multiple digits we do the same as in
base-10: we add corresponding bits and carry the twos: 1 1 1 1
11100101+ 1011101
00010
![Page 37: CSE1301 Computer Programming Lecture 32: Number Representation](https://reader035.vdocuments.site/reader035/viewer/2022062401/5a4d1afd7f8b9ab059984e54/html5/thumbnails/37.jpg)
37
Adding binary numbers• For multiple digits we do the same as in
base-10: we add corresponding bits and carry the twos:
1 1 1 1 1 11100101
+ 1011101000010
![Page 38: CSE1301 Computer Programming Lecture 32: Number Representation](https://reader035.vdocuments.site/reader035/viewer/2022062401/5a4d1afd7f8b9ab059984e54/html5/thumbnails/38.jpg)
38
Adding binary numbers• For multiple digits we do the same as in
base-10: we add corresponding bits and carry the twos: 1 1 1 1 1 1
11100101+ 1011101
1000010
![Page 39: CSE1301 Computer Programming Lecture 32: Number Representation](https://reader035.vdocuments.site/reader035/viewer/2022062401/5a4d1afd7f8b9ab059984e54/html5/thumbnails/39.jpg)
39
Adding binary numbers• For multiple digits we do the same as in
base-10: we add corresponding bits and carry the twos: 1 1 1 1 1 1 1
11100101+ 1011101101000010
![Page 40: CSE1301 Computer Programming Lecture 32: Number Representation](https://reader035.vdocuments.site/reader035/viewer/2022062401/5a4d1afd7f8b9ab059984e54/html5/thumbnails/40.jpg)
40
Adding binary numbers• For multiple digits we do the same as in
base-10: we add corresponding bits and carry the twos:
11100101 229
+ 1011101 + 93101000010 322
![Page 41: CSE1301 Computer Programming Lecture 32: Number Representation](https://reader035.vdocuments.site/reader035/viewer/2022062401/5a4d1afd7f8b9ab059984e54/html5/thumbnails/41.jpg)
41
Adding binary numbers• But that only works for unsigned numbers.
(positive numbers)
• For signed numbers it's much more complicated.
![Page 42: CSE1301 Computer Programming Lecture 32: Number Representation](https://reader035.vdocuments.site/reader035/viewer/2022062401/5a4d1afd7f8b9ab059984e54/html5/thumbnails/42.jpg)
42
Limitations of representations• None of these number representations acts
exactly like the integers.
• Infinitely many integers, but only 2N binary numbers for a specific N-bit representation.
• That means some operations will overflow.
• If the program doesn't crash when that happens, it will simply produce wrong answers (which is worse!)
![Page 43: CSE1301 Computer Programming Lecture 32: Number Representation](https://reader035.vdocuments.site/reader035/viewer/2022062401/5a4d1afd7f8b9ab059984e54/html5/thumbnails/43.jpg)
43
Limitations of representations• Computer arithmetic is only an
approximation of integer arithmetic.
• Many of the arithmetic laws you're used to don't always hold. (See Tutorial 11 - Advanced Exercise for examples.)
![Page 44: CSE1301 Computer Programming Lecture 32: Number Representation](https://reader035.vdocuments.site/reader035/viewer/2022062401/5a4d1afd7f8b9ab059984e54/html5/thumbnails/44.jpg)
44
Reading• Brookshear: Sections 1.4 to 1.7
• D&D: Appendix E