Lecture5 - IntroductionToComputing

Download Report

Transcript Lecture5 - IntroductionToComputing

Lecture 5

Topics

Sec 1.4 Representing Information as Bit Patterns  Representing Text  Representing Numeric Values  Representing Images Sec 1.6 Storing Integers  Two’s Complement Notation  Excess Notation

Representing Text

Each character (letter, punctuation, etc.) is assigned a unique bit pattern.

 ASCII: Uses patterns of 7-bits to represent most symbols used in written English text  Unicode: Uses patterns of 16-bits to represent the major symbols used in languages world side  ISO standard: Uses patterns of 32-bits to represent most symbols used in languages world wide

Figure 1.12 The message “Hello.”

in ASCII

Representing Numeric Values

 Binary notation: Uses bits to represent a number in base two  Limitations of computer representations of numeric values   Overflow – occurs when a value is too big to be represented Truncation – occurs when a value cannot be represented accurately

Representing Images

   Images are stored using a variety of formats and compression techniques The simplest representation is a bitmap Bitmaps partition an image into a grid of picture elements, called

pixels

, and then convert each pixel into a bit pattern

Resolution

of an image   refers to the sharpness or clarity bitmaps that are divided into smaller pixels will yield higher resolution images the left image is stored using 96 pixels per square inch, and the right image is stored using 48 pixels per square inch  the left image appears sharp, but has twice the storage requirements

Storing Integers

 Integers are categorized as:  Signed Integers  Unsigned Integers  Signed are those that include positive as well as negative numbers  While Unsigned are those that only represent positive numbers  The range for Signed Numbers is reduced to half

Signed Integers

There are two ways to represent Signed Integers:  Two’s complement notation: The most popular means of representing integer values  Excess notation: Another means of representing integer values  Both can suffer from overflow errors.

Representing Negative Numbers

 Can use “+” and “-”, as usual.

Decimal Binary +17 +10001 -17 -10001  But requires extra symbols. How can we use bits instead?

Figure 1.21 Two’s complement

notation systems

1-11

Two’s complement Notation

 Invert all bits, then add 1.

Decimal Binary 4-bit (1 bit sign + 3 bits magnitude) Decimal Binary 4-bit (1 bit sign + 3 bits magnitude) 0 1 2 3 4 5 6 7 0000 0001 0010 0011 0100 0101 0110 0111 0 -1 -2 -3 -4 -5 -6 -7 -8 1111 1110 1101 1100 1011 1010 1001 1000

Two’s complement – it just works!

0011 (3 decimal) + 0010 (2 decimal) (5 decimal ?) 1101 + 1110 (-3 decimal) (-2 decimal) (-5 decimal ?) 0011 + 1110 (3 decimal) (-2 decimal) (1 decimal ?)

Problems with binary arithmetic

 Fixed number of bits  can go out of range.

0011 (3 decimal) + 0111 (7 decimal) = 1010 (-6 decimal???)  Overflow: When result can’t be represented within range of bits.

 Overflow occurs when the value that we compute cannot fit into the number of bits we have allocated for the result.

 In addition, if operands have same sign and sum doesn’t.

Excess Notation

 Excess 8 notation indicates that the value for zero is the bit pattern for 8, that is 1000  The bit patterns are 4 bits long  Positive numbers are above it in order and negative numbers are below it in order.

Figure 1.24 An excess eight

conversion table

Excess Notation (continue)

 That is the zero point for Excess 128 notation is 128; the zero point for excess 64 notation is 64; and so forth.

 For example, let's say we want to determine the pattern for 15 in Excess 128 notation.

 The decimal number would be 128 + 15, or 143. Therefore, the bit pattern would be 10001111.

Storing Fractions

 In contrast to storage of Integers the storage of fractions requires not only the representation of the magnitude by the radix point as well  A popular way of doing this is based on scientific notation called Floating-Point

Notation

Binary Fractions (revisited)

 We use a radix point in the same role as the decimal point in decimal notation. That is, the digits to the left of the radix point represent the integer part of the value. The digits to the right represent the fractional part of the value.

 2 _ _ _ . _ _ _ 2 2 1 2 0 2 -1 2 -2 2 -3 2 -1 2 -2 2 -3 = 1/2 = 1/4 = 1/8 Example: 101.101 is 5 5/8 and 101.01011 is 5 11/32

Short Cut (Bin --- Decimal)

Binary-to-decimal for the part after the point 1.

2.

Convert binary digits as though there were no point.

Divide result by 2 #bits divide by 2 7 = 128.

– e.g., if 7 bits converted, then  – – E.g., .1101

1101 = 13 So, .1101 = 13  2 4 = 13/16 = .8125

Figure 1.26 Floating-point

notation components

Look at Scientific Notation

Let's look at some decimal numbers first, to get a feel for what needs to be done. First we need to know how many digits in the mantissa. Let's choose 5.

Real

12001.00

-120.01

0.12

15,555,555

5 digits and an exponent

12001 * 10 0 -12001 * 10 -2 12000 * 10 -5 15555 * 10 3

Floating point

+.12001 * 10 5 -.12001 * 10 3 +.12000 * 10 0 +.15555 * 10 8 The last example shows us one of the problems with floating-point notation – truncation error. Part of the value being stored is lost because the mantissa field is not large enough.

Floating Point Notation

 Now let's switch to binary. Although a common standard uses 64 bits for a floating-point number: 1 bit for the sign, 11 bits for the exponent, and 52 bits for the mantissa, we will use an abbreviated version. Let's use one byte: 1 bit for the sign, 3 bits for the exponent, and 4 bits for the mantissa.

 The sign is easy enough 0 or 1.

 The exponent has 3 bits and must be either + or -. We could use 2's complement, but excess notation is used instead! 3 bits means excess 4 notation. That leaves 4 bits for the mantissa. Why excess notation? It gives the best range of exponents and ease of wiring the circuitry.

Excess 4 Notation

 000 0 – 4 = -4 001 1 – 4 = -3 010 2 – 4 = -2 011 3 – 4 = -1 100 4 – 4 = 0 101 5 – 4 = 1 110 6 – 4 = 2 111 7 – 4 = 3

How to convert ??

 Determine the sign bit  Convert the whole number to binary  Convert the fraction to binary  Move the radix to the left of the most significant digit (left-most non-zero digit)  Determine the exponent in excess 4 notation

Example:  To store 1 1/8 we express it in binary notation and obtain 1.001

 Copy the bit patterns into the mantissa field from left to right.

Example 1

 Examples:  +2 3/4  This is positive so our sign bit is 0  2 is 10  3/4 is .11  This gives us 10.11

Move the radix two places to the left: .1011  So the exponent is +2: 110 in excess 4  Giving us: 0 110 1011

Example 2

 -1.1875  This is negative so our sign bit is 1  1 is 1  .1875 is 3/16 giving us .0011  This gives us 1.0011: Because we have 4 bits we have to use 1.001: Move the radix one place to the left: .1001  So the exponent is +1: 101 in excess 4  Giving us: 1 101 1001

Example 3

 What is 10111100 in decimal?  Split it apart into its pieces: 1 011 1100  The sign is 1 or negative  The exponent is 011 or -1  The mantissa is 1100. Move the radix one place to the left: .01100 giving us 3/8  Our number is -3/8