Transcript Data representation – chapter 5
Chapter 5
Data representation
1
Learning outcomes
By the end of this Chapter you will be able to: • Explain how integers are represented in computers using: • Unsigned, signed magnitude, excess, and two’s complement notations • Explain how fractional numbers are represented in computers • Floating point notation (IEEE 754 single format) • Calculate the decimal value represented by a binary sequence in: • Unsigned, signed notation, excess, two’s complement, and the IEEE 754 notations. • Explain how characters are represented in computers • E.g. using ASCII and Unicode • Explain how colours, images, sound and movies are represented 2
Additional Reading
Essential Reading
• Stalling (2003): Chapter 9
Further Reading
• Brookshear (2003): Chapter 1.4 - 1.7
• • Burrell (2004): Chapter 2 Schneider and Gersting (2004): Chapter 4.2
3
Introduction
In Chapter 3 • How information is stored • in the main memory, • • magnetic memory, and optical memory In Chapter 4: • We studied how information is processed in computers • How the CPU executes instructions In Chapter 5 • We will be looking at how data is represented in computers • • Integer and fractional number representation Characters, colours and sounds representation 4
Binary numbers
Binary number is simply a number comprised of only 0's and 1's. Computers use binary numbers because it's easy for them to communicate using electrical current -- 0 is off, 1 is on. You can express any base 10 (our number system -- where each digit is between 0 and 9) with binary numbers. The need to translate decimal number to binary and binary to decimal.
There are many ways in representing decimal number in binary numbers. (later) 5
How does the binary system work?
It is just like any other system In decimal system the base is 10 • We have 10 possible values 0-9 In binary system the base is 2 • We have only two possible values 0 or 1.
• The same as in any base, 0 digit has non contribution, where 1’s has contribution which depends at there position.
6
Example
30405 10 = 30000 + 400 + 5 = 3* 10 4 +4* 10 2 +5* 10 0 10101 2 =10000+100+1 =1* 2 4 +1* 2 2 +1* 2 0 7
Examples: decimal -- binary
Find the binary representation of 129 10.
Find the decimal value represented by the following binary representations: • 10000011 • 10101010 8
Examples: Representing fractional numbers
Find the binary representations of: • 0.5
10 = 0.1
• 0.75
10 = 0.11
Using only 8 binary digits find the binary representations of: • 0.2
10 • 0.8
10 9
Number representation
Representing whole numbers Representing fractional numbers 10
Integer Representations
• • • • Unsigned notation Signed magnitude notion Excess notation Two’s complement notation.
11
Unsigned Representation
Represents positive integers.
Unsigned representation of 157: position 7 Bit pattern
1
contribution Addition is simple: 2 7 6
0
5
0
4
1
2 4 1 0 0 1 + 0 1 0 1 = 1 1 1 0 .
3
1
2 3 2
1
2 2 1
0
0
1
2 0 12
Advantages and disadvantages of unsigned notation
Advantages: • One representation of zero • Simple addition Disadvantages • Negative numbers can not be represented.
• The need of different notation to represent negative numbers.
13
Representation of negative numbers
Is a representation of negative numbers possible?
Unfortunately: • you can not just stick a negative sign in front of a binary number. (it does not work like that) There are three methods used to represent negative numbers.
• Signed magnitude notation • • Excess notation notation Two’s complement notation 14
Signed Magnitude Representation
Unsigned:
-
and
+
are the same.
In signed magnitude
•
the left-most bit • 0 represents the sign of the integer.
for positive numbers.
• 1 for negative numbers.
The remaining bits represent to magnitude of the numbers.
15
Example
Suppose 10011101 is a signed magnitude representation.
The sign bit is 1 , then the number represented is negative position Bit pattern contribution
-
7
1
6
0
5
0
4
1
2 4 3
1
2 3 2
1
2 2 1
0
0
1
2 0 The magnitude is 0011101 with a value 2 4 +2 3 +2 2 +2 0 = 29 Then the number represented by 10011101 is –29 .
16
Exercise 1
1.
2.
3.
37 10 has 0010 0101 in signed magnitude notation. Find the signed magnitude of –37 10 ?
Using the signed magnitude notation find the 8-bit binary representation of the decimal value 24 10 and 24 10 .
Find the signed magnitude of –63 sequence?
using 8-bit binary 17
Disadvantage of Signed Magnitude
Addition and subtractions are difficult.
Signs and magnitude, both have to carry out the required operation.
They are two representations of 0 • 00000000 = + 0 10 • • 10000000 = - 0 10 To test if a number is 0 or not , the CPU whether it is 00000000 or 10000000 .
• will need to see 0 is always • performed in programs. Therefore, having two representations of 0 is inconvenient .
18
Signed-Summary
In signed magnitude notation, • The most significant bit is used to represent the sign. • • • 1 0 represents negative represents positive numbers numbers. The unsigned value of the remaining bits represent The magnitude .
Advantages: • Represents positive and negative numbers Disadvantages: • two representations of zero, • Arithmetic operations are difficult. 19
Excess Notation
In excess notation: • The value represented is the unsigned value with a fixed value subtracted from it. • For n-bit binary sequences the value subtracted fixed value is 2 (n-1) .
• Most significant bit: • 0 for negative numbers • 1 for positive numbers 20
Excess Notation with n bits
1000…0 represent 2 n-1 is the decimal value in unsigned notation.
Decimal value In unsigned notation
- 2 n-1 =
Decimal value In excess notation Therefore, in excess notation: • 1000…0 will represent 0 .
21
Example (1) - excess to decimal
Find the decimal number represented by 10011001 • in excess notation.
Unsigned value • 10011000 2 = 2 7 + 2 4 + 2 3 + 2 0 = 128 + 16 +8 +1 = 153 10 • Excess value: • excess value = 153 – 2 7 = 152 – 128 = 25.
22
Example (2) - decimal to excess
Represent the decimal value 24 in 8-bit excess notation.
We first add, 2 8-1 , the fixed value • 24 + 2 8-1 = 24 + 128= 152 then, find the unsigned value of 152 • 152 10 = 10011000 (unsigned notation).
• 24 10 = 10011000 (excess notation) 23
example (3)
Represent the decimal value -24 in 8-bit excess notation.
We first add, 2 8-1 , the fixed value • -24 + 2 8-1 = -24 + 128= 104 then, find the unsigned value of 104 • 104 10 = 01101000 (unsigned notation).
• -24 10 = 01101000 (excess notation) 24
Example (4) (10101)
Unsigned • • 10101 2 = 16+4+1 = 21 10 The value represented in unsigned notation is 21 Sign Magnitude • The sign bit is 1 , so the sign is negative • • The magnitude is the unsigned value 0101 2 = 5 10 So the value represented in signed magnitude is -5 10 Excess notation • • • As an unsigned binary integer 10101 2 subtracting 2 5-1 = 2 4 = 16, we get = 21 10 21-16 = 5 10 .
So the value represented in excess notation is 5 10 .
25
Advantages of Excess Notation
It can represent positive and negative integers.
There is only one representation for 0.
It is easy to compare two numbers. When comparing the bits can be treated as unsigned integers. Excess notation is not normally used to represent integers. It is mainly used in floating point representation for representing fractions (later floating point rep.).
26
Exercise 2
1.
2.
• • Find 10011001 is an 8-bit binary sequence.
Find the decimal value it represents if it was in unsigned and signed magnitude.
Suppose this representation is excess notation, find the decimal value it represents?
Using 8-bit binary sequence notation, find the unsigned, signed magnitude and excess notation of the decimal value 11 10 ?
27
Excess notation - Summary
In excess notation, the value represented is the unsigned value with a fixed value subtracted from it.
• i.e. for n-bit binary sequences the value subtracted is 2 (n-1) .
Most significant bit: • 0 for negative numbers .
• 1 positive numbers.
Advantages: • Only one representation of zero.
• Easy for comparison.
28
Two’s Complement Notation
The most used representation for integers.
• All positive numbers begin with 0.
• • All negative numbers begin with 1 .
One representation of zero
•
i.e. 0 is represented as 0000 using 4-bit binary sequence.
29
Two’s Complement Notation with 4-bits Binary pattern 0 1 1 1 0 1 1 0 0 1 0 1 0 1 0 0 0 0 1 1 0 0 1 0 0 0 0 1 0 0 0 0 1 1 1 1 1 1 1 0 1 1 0 1 1 1 0 0 1 0 1 1 1 0 1 0 1 0 0 1 1 0 0 0 Value in 2’s complement.
7 6 5 4 3 2 1 0 -1 -2 -3 -4 -5 -6 -7 -8
30
Properties of Two’s Complement Notation
Positive numbers begin with 0 Negative numbers begin with 1 Only one representation of 0, i.e. 0000 Relationship between +n and –n .
• 0 1 0 0 +4 0 0 0 1 0 0 1 0 +18 • 1 1 0 0 -4 1 1 1 0 1 1 1 0 -18 31
Advantages of Two’s Complement Notation
It is easy to add two numbers.
0 0 0 1 +1 1 0 0 0 -8
+ 0 1 1 0 +6 1 1 0 1 -3
• Subtraction can be easily performed.
• Multiplication is just a repeated addition.
• Division is just a repeated subtraction • Two’s complement is widely used in
ALU
32
Evaluating numbers in two’s complement notation
Sign bit = 0, the number is positive. The value is determined in the usual way. Sign bit = 1, the number is negative. three methods can be used: Method 1 Method 2 Method 3 decimal value of (n-1) bits, then subtract 2 n-1 - 2 n-1 is the contribution of the sign bit.
Binary rep. of the corresponding positive number.
Let V be its decimal value.
- V is the required value.
33
Example- 10101 in Two’s Complement
The most significant bit is 1, hence it is a negative number.
Method 1 • 0101 = +5 (+5 – 2 5-1 = 5 – 2 4 = 5-16 = -11) Method 2 4 3 2 1 0 1 0 1 0 1 -2 4 2 2 2 0 = -11 Method 3 • Corresponding + number is 01011 = 8 + 2+1 = 11 the result is then –11. 34
Two’s complement-summary
In two’s complement the most significant for an n-bit number has a contribution of
–2 (n-1) .
One representation of zero All arithmetic operations can be performed by using addition and inversion.
The most significant bit: 0 for positive and 1 for negative.
Three methods can the decimal value of a negative number: Method 1 Method 2 Method 3 decimal value of (n-1) bits, then subtract 2 n-1 - 2 n-1 is the contribution of the sign bit.
Binary rep. of the corresponding positive number.
Let V be its decimal value.
- V is the required value.
35
Exercise - 10001011
Determine the decimal value represented by 10001011 in each of the following four systems.
1.
2.
3.
4.
Unsigned notation? Signed magnitude notation?
Excess notation?
Tow’s complements?
36
Fraction Representation
To represent fraction we need other representations: • Fixed point representation • Floating point representation.
37
Fixed-Point Representation
old position 7 6 5 4 3 2 1 0 New position 4 3 2 1 0 -1 -2 -3 Bit pattern
1 0 0 1 1 . 1 0 1
Contribution 2 4 2 1 2 0 2 -1 2 -3 =19.625
Radix-point
38
Limitation of Fixed-Point Representation
To represent large numbers or very small numbers we need a very long sequences of bits.
This is because we have to give bits to both the integer part and the fraction part.
39
Floating Point Representation
In decimal notation we can get around this problem using
scientific notation
or
floating point notation. Number
1,245,000,000,000 0.0000001245
-0.0000001245
Scientific notation
1.
245 10 12 1.
245 10 -7 -1.
245 10 -7
Floating-point notation
0.
1245 10 13 0.
1245 10 -6 -0.
1245 10 -6 40
Floating Point
-15900000000000000
could be represented as
Mantissa Base Sign
- 159 * 10
14
- 15.9 * 10
15
- 1.59 * 10
16 A calculator might display 159 E14
Exponent
41
Floating point format
M
B
E Sign
Sign mantissa or base exponent significand
Exponent Mantissa
42
Floating Point Representation format
Sign Exponent Mantissa
The exponent is biased by a fixed value b , called the bias.
The mantissa should be normalised, e.g. if the real mantissa if of the form 1.f
then the normalised mantissa should be f, where f is a binary sequence. 43
IEEE 745 Single Precision
The number will occupy 32 bits
The first bit represents the sign of the number; 1= negative 0= positive.
The next 8 bits will specify the exponent stored in biased 127 form.
The remaining 23 bits will carry the mantissa normalised to be between 1 and 2.
i.e. 1<= mantissa < 2 44
Representation in IEEE 754 single precision
• • sign bit: 0 for positive and, 1 for negative numbers 8 biased exponent by 127 23 bit normalised mantissa
Sign Exponent Mantissa
45
Basic Conversion
Converting a decimal number to a floating point number .
• 1.Take the integer part of the number and generate the binary equivalent.
• 2.Take the fractional part and generate a binary fraction • 3.Then place the two parts together and normalise. 46
IEEE – Example 1
Convert 6.75 to 32 bit IEEE format.
1.
The Mantissa. The Integer first.
6 / 2 = 3 r 0 3 / 2 1 / 2 = 1 r 1 = 0 r 1
= 110 2
2. Fraction next.
.75 * 2 = 1.5
= 0.11
2
.5 * 2 = 1.0
3. put the two parts together… 110 .
11 Now normalise 1.1011 * 2
2
47
IEEE – Example 1
Convert 6.75 to 32 bit IEEE format.
1.
The Mantissa. The Integer first.
6 / 2 = 3 r 0 3 / 2 = 1 r 1
= 110 2
1 / 2 = 0 r 1 2. Fraction next.
.75 * 2 = 1.5
.5 * 2 = 1.0
= 0.11
2
3. put the two parts together… 110 .
11 Now normalise 1.1011 * 2
2
48
IEEE – Example 1
Convert 6.75 to 32 bit IEEE format.
1.
The Mantissa. The Integer first.
6 / 2 = 3 r 0 3 / 2 = 1 r 1
= 110 2
1 / 2 = 0 r 1 2. Fraction next.
.75 * 2 = 1.5
.5 * 2 = 1.0
= 0.11
2
3. put the two parts together… 110 .
11 Now normalise 1.1011 * 2
2
49
IEEE Biased 127 Exponent
To generate a biased 127 exponent
Take the value of the signed exponent and add 127.
Example.
2 16 then 2 127 +16 = 2 143 and my value for the exponent would be 143 = 10001111 2
So it is simply now an unsigned value ....
50
Possible Representations of an Exponent
Binary Sign Magnitude 2's
Biased
Complement
127 Exponent.
00000000 0 0 00000001 00000010 01111110 01111111 10000000 10000001 11111110 11111111 1 2 126 127 -0 -1 -126 -127 1 2 126 127 -128 -127 -2 -1 -127 {reserved} -126 -125 -1 0 1 2 127 128 {reserved} 51
Why Biased ?
The smallest exponent Only one exponent zero 00000000 01111111 The highest exponent is 11111111 To increase the exponent by one simply add 1 to the present pattern.
52
Back to the example
Our original example revisited…. 1.
1011 * 2 2 Exponent is 2 +127 =129 or 10000001 in binary.
NOTE: Mantissa always ends up with a value of ‘1’ before the Dot. This is a waste of storage therefore it is implied but not actually stored. 1.1000 is stored .1000
6.75 in 32 bit floating point IEEE representation: 0 10000001 10110000000000000000000 sign(1) exponent (8) mantissa (23 )
53
Representation in IEEE 754 single precision
• • sign bit: 0 for positive and, 1 for negative numbers 8 biased exponent by 127 23 bit normalised mantissa
Sign Exponent Mantissa
54
Example (2)
which number does the following IEEE single precision notation represent?
1 1000 0000 0100 0000 0000 0000 0000 000
The sign bit is 1 , hence it is a negative number .
The exponent is 1000 0000 = 128 10 It is biased by 127 , hence the real exponent is 128 –127 = 1.
The mantissa: 0100 0000 0000 0000 0000 000
.
It is normalised, hence the true mantissa is 1.01 = 1.25
10 Finally, the number represented is: -1.25 x 2 1 = -2.50
55
Single Precision Format
The exponent is formatted using excess-127 notation, with an implied base of 2 • Example: • Exponent:
10000111
• Representation:
135 – 127 = 8
The stored values 0 and 255 of the exponent are used to indicate special values, the exponential range is restricted to 2 -126 to 2 127 The number 0.0 is defined by a mantissa of 0 together with the special exponential value 0 The standard allows also values +/ ∞ (represented as mantissa +/-0 and exponent 255 Allows various other special conditions 56
In comparison
The smallest and largest possible 32-bit integers in two’s complement are only 2 32 2 31 1 and 2020/5/6 PITT CS 1621 57 57
Range of numbers
Normalized (positive range; negative is symmetric)
smallest 00000000100000000000000000000000 +2 -126
×
(1+0) = 2 -126 largest 01111111011111111111111111111111 +2 127
×
(2-2 -23 ) 2 127 (2-2 -23 ) 0 2 -126
Positive underflow 2020/5/6 PITT CS 1621 Positive overflow 58 58
Representation in IEEE 754 double precision format
It uses 64 bits • 1 bit sign • • 11 bit biased exponent 52 bit mantissa
Sign Exponent Mantissa
59
IEEE 754 double precision Biased = 1023
11-bit exponent with an excess of 1023 .
For example: • If the exponent is
-1
• we then add 1023 • to it. -1+1023 = 1022 We then find the binary representation of 1022 • Which is 0111 1111 110 • The exponent field will now hold 0111 1111 110 • This means that we just represent -1 with an excess of 1023 .
60
IEEE 754 Encoding
Single Precision Exponent 0 Fraction 0 0 non-zero 1~254 255 255 anything 0 non-zero Double Precision Exponent 0 Fraction 0 0 1~2046 2047 2047 non-zero anything 0 non-zero Represented Object 0
+/- denormalized number +/- floating-point numbers
+/- infinity NaN (Not a Number) 61 61
Floating Point Representation format (summary)
Sign Exponent Mantissa
the sign bit represents the sign • 0 for positive numbers • 1 for negative numbers The exponent is biased by a fixed value b , called the bias.
The mantissa should be normalised, e.g. if the real mantissa if of the form 1.f
then the normalised mantissa should be f, where f is a binary sequence. 62
Character representation- ASCII
ASCII (American Standard Code for Information Interchange) It is the scheme used to represent characters.
Each character is represented using 7-bit binary code.
If 8-bits are used, the first bit is always set to 0 See ( table 5.1 p56, study guide ) for character representation in ASCII .
63
ASCII – example
Symbol decimal Binary > ?
@ A B C : ; < = 7 55 8 56 9 57 58 59 60 61 62 63 64 65 66 67 00110111 00111000 00111001 00111010 00111011 00111100 00111101 00111110 00111111 01000000 01000001 01000010 01000011
64
Character strings
How to represent character strings?
A collection of adjacent “words” (bit-string units) can store a sequence of letters
'H' 'e' 'l' 'l' o' ' ' 'W' 'o' 'r' 'l' 'd' '\0'
Notation: enclose strings in double quotes • " Hello world " Representation convention: null character defines end of string • Null is sometimes written as '\0' • Its binary representation is the number 0 65
Layered View of Representation
Text string Information Information Sequence of characters Character Data Information Data Information Bit string Data Data 66
Working With A Layered View of Representation
Represent “SI” at the two layers shown on the previous slide.
Representation schemes: •
Top layer - Character string to character sequence
: Write each letter separately, enclosed in quotes. End string with ‘\0’.
•
Bottom layer - Character to bit-string
: Represent a character using the binary equivalent according to the ASCII table provided.
67
Solution
SI ‘S’ ‘I’ ‘\0’
01010011 01001000 00000000
•
The colors are intended to help you read it; computers don’t care that all the bits run together.
68
exercise
Use the ASCII table to write the ASCII code for the following: • CIS110 • 6=2*3 69
Unicode - representation
ASCII
code can represent only 128 = 2 7 characters.
It only represents the English Alphabet plus some control characters.
Unicode
is designed to represent the worldwide interchange.
It uses 16 bits and can represents 32,768 characters.
For compatibility, the first 128 Unicode the one of the
ASCII
.
are the same as 70
Colour representation
Colours can represented using a sequence of bits.
256 colours • – how many bits?
Hint for calculating • To figure out how many bits are needed to represent a range of values, figure out the smallest power of 2 that is equal to or bigger than the size of the range.
• That is, find
x
for 2 x => 256 24-bit colour – how many possible colors can be represented?
• Hints • 16 million possible colours (why 16 millions?) 71
24-bits -- the True colour
• • 24-bit color is often referred to as the true colour.
Any real-life shade, detected by the naked eye, will be among the 16 million possible colours.
72
4=2 2 • choices 00 (off, off)=white • 01 (off, on)=light grey • •
Example: 2-bit per pixel
10 (on, off)=dark grey 11 (on, on)=black
= 0 0 0 1 = = 1 0 = 1 1 (white) (light grey) (dark grey) (black)
73
Image representation
An image can be divided into many tiny squares, called pixels.
Each pixel has a particular colour.
The quality of the picture depends on two factors: • the density of pixels.
• The length of the word representing colours.
The resolution of an image is the density of pixels.
The higher the resolution the more information information the image contains.
74
Bitmap Images
Each individual
pixel
(
pi(x
) cture
el
ement) in a graphic stored as a binary number • Pixel: A small area with associated coordinate location • Example: each point below is represented by a 4-bit code corresponding to 1 of 16 shades of gray 75
Representing Sound Graphically
X axis: time Y axis: pressure A: amplitude (volume) : wavelength (inverse of frequency = 1/ ) 76
Sampling
Sampling is a method used to digitise sound waves.
A sample is the measurement of the amplitude at a point in time.
The quality of the sound depends on: • The sampling rate, the faster the better • The size of the word used to represent a sample .
77
Digitizing Sound
Capture amplitude at these points Lose all variation between data points Zoomed Low Frequency Signal 78
Summary
Integer representation • Unsigned, • • • Signed, Excess notation, and Two’s complement.
Fraction representation • Floating point (IEEE 754 format ) • Single and double precision Character representation Colour representation Sound representation 79
Exercise
1.
2.
3.
Represent +0.8 in the following floating-point • • • representation: 1-bit sign 4-bit exponent 6-bit normalised mantissa (significand).
Convert the value represented back to decimal.
Calculate the relative error of the representation.
80