Computer Science 111 Fundamentals of Programming I Sequences: Strings.
Computer Science 111 Fundamentals of Programming I Number Systems.
-
Upload
oscar-harmon -
Category
Documents
-
view
222 -
download
1
Transcript of Computer Science 111 Fundamentals of Programming I Number Systems.
![Page 1: Computer Science 111 Fundamentals of Programming I Number Systems.](https://reader035.fdocuments.in/reader035/viewer/2022062321/56649e735503460f94b7237b/html5/thumbnails/1.jpg)
Computer Science 111
Fundamentals of Programming I
Number Systems
![Page 2: Computer Science 111 Fundamentals of Programming I Number Systems.](https://reader035.fdocuments.in/reader035/viewer/2022062321/56649e735503460f94b7237b/html5/thumbnails/2.jpg)
Numeric Types: int
• int is used for integers
• In many languages, the range of int is -231 through 231 - 1
• In Python, an integer’s magnitude is limited only by the computer’s memory
![Page 3: Computer Science 111 Fundamentals of Programming I Number Systems.](https://reader035.fdocuments.in/reader035/viewer/2022062321/56649e735503460f94b7237b/html5/thumbnails/3.jpg)
Why 231 - 1?
• Numbers are stored in computer memory as patterns of voltage levels
• Just two voltage levels, ON and OFF, are significant on a digital computer
• ON and OFF represent the digits 1 and 0 of the binary number system
• All numbers are represented in binary in a digital computer
![Page 4: Computer Science 111 Fundamentals of Programming I Number Systems.](https://reader035.fdocuments.in/reader035/viewer/2022062321/56649e735503460f94b7237b/html5/thumbnails/4.jpg)
Computer Memory0 1 0 1 1 1 1 1 0 1 0 1 1 1 1 1 0 1 0 1 1 1 1 1 0 1 0 1 1 1 1 1
0 1 0 1 1 1 1 1 0 1 0 1 1 1 1 1 0 1 0 1 1 1 1 1 0 1 0 1 1 1 1 1
0 1 0 1 1 1 1 1 0 1 0 1 1 1 1 1 0 1 0 1 1 1 1 1 0 1 0 1 1 1 1 1
0 1 0 1 1 1 1 1 0 1 0 1 1 1 1 1 0 1 0 1 1 1 1 1 0 1 0 1 1 1 1 1
0 1 0 1 1 1 1 1 0 1 0 1 1 1 1 1 0 1 0 1 1 1 1 1 0 1 0 1 1 1 1 1
…
Memory might have billions of cells that support the storage of trillions of binary digits or bits of information
Each cell in this memory has room for 32 bits
![Page 5: Computer Science 111 Fundamentals of Programming I Number Systems.](https://reader035.fdocuments.in/reader035/viewer/2022062321/56649e735503460f94b7237b/html5/thumbnails/5.jpg)
Bits and Bytes
0 1 0 1 1 1 1 1 0 1 0 1 1 1 1 1 0 1 0 1 1 1 1 1 0 1 0 1 1 1 1 1
A byte is 8 bits
In some languages, int uses 4 bytes
The magnitude and the sign (+/-) of the number are determined by the binary representation
byte byte byte byte
![Page 6: Computer Science 111 Fundamentals of Programming I Number Systems.](https://reader035.fdocuments.in/reader035/viewer/2022062321/56649e735503460f94b7237b/html5/thumbnails/6.jpg)
Decimal and Binary
• Decimal numbers use the 10 decimal digits and a base of 10
• Binary numbers use the binary digits 0 and 1 and a base of 2
• The base is often provided as a subscript to indicate the type of system, as in 304210 and 110111102
• Thus, 110110 is very different from 11012
![Page 7: Computer Science 111 Fundamentals of Programming I Number Systems.](https://reader035.fdocuments.in/reader035/viewer/2022062321/56649e735503460f94b7237b/html5/thumbnails/7.jpg)
Positional Notation
• Number systems are positional, so the magnitude of the number depends on the base and the position of the digits in the number
• Each position represents a power of the number’s base
• For example, in a 3-digit decimal number, the three positions represent the number of hundreds (102), tens (101), and ones (100)
• 342 = 3 * 102 + 4 * 101 + 2 * 100 • = 3 * 100 + 4 * 10 + 2 * 1 • = 300 + 40 + 2• = 342
![Page 8: Computer Science 111 Fundamentals of Programming I Number Systems.](https://reader035.fdocuments.in/reader035/viewer/2022062321/56649e735503460f94b7237b/html5/thumbnails/8.jpg)
Positional Notation: Binary
• The base is now 2 and the only digits are 0 and 1
• Each position represents a power of 2
• For example, in a 4-digit binary number, the four positions represent the number of eights (23), fours (22), twos (21), and ones (10)
• 1101 = 1 * 23 + 1 * 22 + 0 * 21 + 1 * 20 • = 1 * 8 + 1 * 4 + 0 * 2 + 1 * 1 • = 8 + 4 + 0 + 1• = 13
![Page 9: Computer Science 111 Fundamentals of Programming I Number Systems.](https://reader035.fdocuments.in/reader035/viewer/2022062321/56649e735503460f94b7237b/html5/thumbnails/9.jpg)
An Algorithm for Binary to Decimal Conversion
# Input: A string of 1 or more binary digits# Output: The integer represented by the stringbinary = input("Enter a binary number: ")decimal = 0exponent = len(binary) – 1for digit in binary: decimal = decimal + int(digit) * 2 ** exponent exponent = exponent – 1print("The integer value is", decimal)
The len function returns the number of characters in a string
The for loop visits each character in a string
![Page 10: Computer Science 111 Fundamentals of Programming I Number Systems.](https://reader035.fdocuments.in/reader035/viewer/2022062321/56649e735503460f94b7237b/html5/thumbnails/10.jpg)
Counting in BinaryBinary Magnitude
0 0
1 1
10 2
11 3
100 4
101 5
110 6
111 7
1000 8
21
22
23
Each power of 2 in binary is a 1 followed by the number of 0s equal to the exponent
What is the magnitude of 10000002?
![Page 11: Computer Science 111 Fundamentals of Programming I Number Systems.](https://reader035.fdocuments.in/reader035/viewer/2022062321/56649e735503460f94b7237b/html5/thumbnails/11.jpg)
Counting in BinaryBinary Magnitude
0 0
1 1
10 2
11 3
100 4
101 5
110 6
111 7
1000 8
21 - 1
22 - 1
23 - 1
Each number with only 1s equals one less than the power of 2 whose exponent is that number of 1s
What is the magnitude of 11112?
![Page 12: Computer Science 111 Fundamentals of Programming I Number Systems.](https://reader035.fdocuments.in/reader035/viewer/2022062321/56649e735503460f94b7237b/html5/thumbnails/12.jpg)
Limits of Magnitude - Unsigned ints
• Unsigned integers are the non-negative integers
• The largest unsigned integer that can be represented using N bits is 2N - 1 (all bits are 1s)
• Thus, the largest unsigned integer stored in 32 bits is 232 - 1
![Page 13: Computer Science 111 Fundamentals of Programming I Number Systems.](https://reader035.fdocuments.in/reader035/viewer/2022062321/56649e735503460f94b7237b/html5/thumbnails/13.jpg)
Limits of Magnitude - Signed ints
• Signed integers include negative and positive integers and 0
• Part of the memory (one bit) must be reserved to represent the number’s sign somehow
• For each bit unavailable, you must subtract 1 from the exponent (2N-1) of the number’s magnitude
• Thus, the largest positive signed integer stored in 32 bits is 231 - 1
![Page 14: Computer Science 111 Fundamentals of Programming I Number Systems.](https://reader035.fdocuments.in/reader035/viewer/2022062321/56649e735503460f94b7237b/html5/thumbnails/14.jpg)
Twos Complement Notation
• Positive numbers have 0 in the leftmost bit, negative numbers have 1 in the leftmost bit
• To compute a negative number’s magnitude, – Invert all the bits– Add 1 to the result– Use the conversion algorithm
• To represent a negative number,– Translate the magnitude to an unsigned binary number– Invert all the bits– Add 1 to the result
![Page 15: Computer Science 111 Fundamentals of Programming I Number Systems.](https://reader035.fdocuments.in/reader035/viewer/2022062321/56649e735503460f94b7237b/html5/thumbnails/15.jpg)
Convert Decimal to Binary
• Start with an integer, N, and an empty string, S
• Assume that N > 0
• While N > 0:– Compute the remainder of dividing N by 2 (will be 0 or 1)– Prepend the remainder’s digit to S– Reset N to the quotient of N and 2
![Page 16: Computer Science 111 Fundamentals of Programming I Number Systems.](https://reader035.fdocuments.in/reader035/viewer/2022062321/56649e735503460f94b7237b/html5/thumbnails/16.jpg)
An Algorithm for Decimal to Binary Conversion
# Input: An integer > 0# Output: A string representing the integer in base 2n = int(input("Enter an integer greater than 0: "))binary = ''while n > 0: rem = n % 2 binary = str(rem) + binary n = n // 2print(binary)
Here we want the quotient and the remainder, not exact division!
![Page 17: Computer Science 111 Fundamentals of Programming I Number Systems.](https://reader035.fdocuments.in/reader035/viewer/2022062321/56649e735503460f94b7237b/html5/thumbnails/17.jpg)
Numeric Types: float
• Uses 8 bytes to represent floating-point numbers that range from +10308.25 through -10308.25
• Default printing is up to 16 digits of precision
• But actual precision seems to extend even further - try format string with 60 places
![Page 18: Computer Science 111 Fundamentals of Programming I Number Systems.](https://reader035.fdocuments.in/reader035/viewer/2022062321/56649e735503460f94b7237b/html5/thumbnails/18.jpg)
Problems with Float
• Some numbers, such as 0.1, cannot be represented exactly, due to round-off errors
• This can cause errors when two floats are compared for equality
![Page 19: Computer Science 111 Fundamentals of Programming I Number Systems.](https://reader035.fdocuments.in/reader035/viewer/2022062321/56649e735503460f94b7237b/html5/thumbnails/19.jpg)
Example: Add 0.1 Ten Times
sum = 0.0for i in range(10): sum = sum + 0.1print(sum) # Displays 1.0print(sum < 1.0) # Displays True!
Convert dollars and cents to pennies (ints) in critical financial calculations!
![Page 20: Computer Science 111 Fundamentals of Programming I Number Systems.](https://reader035.fdocuments.in/reader035/viewer/2022062321/56649e735503460f94b7237b/html5/thumbnails/20.jpg)
Use int or float?
• In general, arithmetic operations are faster with integers than with floats
• Integers (regular ones) require less memory
• Use float when it’s convenient to do so and you’re not worried about losing numeric information
![Page 21: Computer Science 111 Fundamentals of Programming I Number Systems.](https://reader035.fdocuments.in/reader035/viewer/2022062321/56649e735503460f94b7237b/html5/thumbnails/21.jpg)
Reading For Monday
Finish Chapter 4