computer science 111 n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Computer Science 111 PowerPoint Presentation
Download Presentation
Computer Science 111

Loading in 2 Seconds...

play fullscreen
1 / 21

Computer Science 111 - PowerPoint PPT Presentation


  • 95 Views
  • Uploaded on

Computer Science 111. Fundamentals of Programming I Number Systems. Numeric Types: int. int is used for integers In many languages, the range of int is -2 31 through 2 31 - 1 In Python, an integer ’ s magnitude is limited only by the computer ’ s memory. Why 2 31 - 1?.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Computer Science 111' - mary-battle


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
computer science 111

Computer Science 111

Fundamentals of Programming I

Number Systems

numeric types int
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
why 2 31 1
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
computer memory
Computer Memory

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

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

bits and bytes
Bits and Bytes

byte

byte

byte

byte

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

decimal and binary
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
positional notation
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
positional notation binary
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
an algorithm for binary to decimal conversion
An Algorithm for Binary to Decimal Conversion

# Input: A string of 1 or more binary digits

# Output: The integer represented by the string

binary = input("Enter a binary number: ")

decimal = 0

exponent = len(binary) – 1

for digit in binary:

decimal = decimal + int(digit) * 2 ** exponent

exponent = exponent – 1

print("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

counting in binary
Counting in Binary

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?

21

22

23

counting in binary1
Counting in Binary

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?

21 - 1

22 - 1

23 - 1

limits of magnitude unsigned int s
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
limits of magnitude signed int s
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
twos complement notation
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
convert decimal to binary
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
an algorithm for decimal to binary conversion
An Algorithm for Decimal to Binary Conversion

# Input: An integer > 0

# Output: A string representing the integer in base 2

n = int(input("Enter an integer greater than 0: "))

binary = ''

while n > 0:

rem = n % 2

binary = str(rem) + binary

n = n // 2

print(binary)

Here we want the quotient and the remainder, not exact division!

numeric types float
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
problems with float
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
example add 0 1 ten times
Example: Add 0.1 Ten Times

sum = 0.0

for i in range(10):

sum = sum + 0.1

print(sum) # Displays 1.0

print(sum < 1.0) # Displays True!

Convert dollars and cents to pennies (ints) in critical financial calculations!

use int or float
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