CSc 28 Data representation

advertisement
CSc 28 Data representation
CSc 28 Fall 2012
1
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.
CSc 28 Fall 2012
2
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.
CSc 28 Fall 2012
3
Example
3040510 = 30000 + 400 + 5
= 3*104+4*102+5*100
101012 =10000+100+1
=1*24+1*22+1*20
CSc 28 Fall 2012
4
Examples: decimal -- binary
Find the binary representation of 12910.
Find the decimal value represented by the
following binary representations:
10000011
10101010
CSc 28 Fall 2012
5
Examples: Representing fractional numbers
• Find the binary representations of:
0.510 = 0.1
0.7510 = 0.11
• Using only 8 binary digits find the binary
representations of:
0.210
0.810
CSc 28 Fall 2012
6
Number representation
Representing whole numbers
Representing fractional numbers
CSc 28 Fall 2012
7
Integer Representations
– Unsigned notation
– Signed magnitude notion
– Excess notation
– Two’s complement notation
CSc 28 Fall 2012
8
Unsigned Representation
• Represents positive integers.
• Unsigned representation of 157
position
7
6
5
4
3
2
1
0
Bit pattern
1
0
0
1
1
1
0
1
contribution
27
24
23
22
20
• Addition is simple:
1001 + 0101= 1110
CSc 28 Fall 2012
9
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
CSc 28 Fall 2012
10
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
– Two’s complement notation
CSc 28 Fall 2012
11
Signed Magnitude Representation
• Unsigned: - and + are the same.
• In signed magnitude
the left-most bit represents the sign of the
integer.
0 for positive numbers.
1 for negative numbers.
• The remaining bits represent to magnitude of the
numbers.
CSc 28 Fall 2012
12
Example
• Suppose 10011101 is a signed magnitude representation.
• The sign bit is 1, then the number represented is negative
position
7
6
5
4
3
2
1
0
Bit pattern
1
0
0
1
1
1
0
1
24
23
22
contribution
-
20
• The magnitude is 0011101 with a value 24+23+22+20= 29
• Then the number represented by 10011101 is –29
CSc 28 Fall 2012
13
Exercise 1
1. 3710 has 0010 0101 in signed magnitude
notation. Find the signed magnitude of –3710 ?
2. Using the signed magnitude notation find the
8-bit binary representation of the decimal value
2410 and -2410.
3. Find the signed magnitude of –63 using 8-bit
binary sequence?
CSc 28 Fall 2012
14
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 = + 010
10000000 = - 010
To test if a number is 0 or not, the CPU will need to
see whether it is 00000000 or 10000000
CSc 28 Fall 2012
15
Signed-Summary
• In signed magnitude notation,
The most significant bit is used to represent the sign.
1 represents negative numbers
0 represents positive 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.
CSc 28 Fall 2012
16
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
CSc 28 Fall 2012
17
Excess Notation with n bits
1000…0 represent 2n-1 is the decimal value in unsigned
notation.
Decimal value
In unsigned
notation
- 2n-1 =
Decimal value
In excess
notation
Therefore, in excess notation:
1000…0 will represent 0 .
CSc 28 Fall 2012
18
Example (1) - excess to decimal
Find the decimal number represented by 10011001 in
excess notation.
– Unsigned value
100110002 = 27 + 24 + 23 + 20 = 128 + 16 +8 +1 = 15310
– Excess value:
excess value = 153 – 27 = 152 – 128 = 25.
CSc 28 Fall 2012
19
Example (2) - decimal to excess
• Represent the decimal value 24 in 8-bit excess
notation.
• We first add, 28-1, the fixed value
24 + 28-1 = 24 + 128= 152
• Then, find the unsigned value of 152
15210 = 10011000 (unsigned notation).
2410 = 10011000 (excess notation)
CSc 28 Fall 2012
20
Example (3)
• Represent the decimal value -24 in 8-bit excess
notation.
• We first add, 28-1, the fixed value
-24 + 28-1 = -24 + 128= 104
• then, find the unsigned value of 104
10410 = 01101000 (unsigned notation).
-2410 = 01101000 (excess notation)
CSc 28 Fall 2012
21
Example (4) 101012
• Unsigned
101012 = 16+4+1 = 2110
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 01012 = 510
– So the value represented in signed magnitude is -510
• Excess notation
– As an unsigned binary integer 101012 = 2110
– subtracting 25-1 = 24 = 16, we get 21-16 = 510
– So the value represented in excess notation is 510
CSc 28 Fall 2012
22
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.)
CSc 28 Fall 2012
23
Your turn…
1.
Find 10011001 is an 8-bit binary sequence.
–
–
2.
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 1110 ?
CSc 28 Fall 2012
24
Excess notation - Summary
• 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 is 2(n-1)
• Most significant bit:
0 for negative numbers
1 positive numbers
• Advantages:
Only one representation of zero
Easy for comparison
CSc 28 Fall 2012
25
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
0 is represented as 0000
using 4-bit binary sequence
CSc 28 Fall 2012
26
Two’s Complement Notation with 4-bits
Binary pattern
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
0
0
0
0
Value in 2’s complement.
1 1
1 0
01
0 0
1 1
1 0
0 1
0 0
1 1
1 0
0 1
0 0
1 1
1 0
0 1
0 0
7
6
5
4
3
2
1
0
-1
-2
-3
-4
-5
-6
-7
-8
CSc 28 Fall 2012
27
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
0100
+4
00010010
+18
1100
-4
11101110
-18
CSc 28 Fall 2012
28
Advantages of Two’s Complement Notation
• It is easy to add two numbers.
+
0 0 0 1 +1
0 1 0 1 +5
1000 -8
+ 0 1 0 1 +5
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
(Arithmetic Logic Unit)
CSc 28 Fall 2012
29
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
decimal value of (n-1) bits, then subtract 2n-1
Method 2
- 2n-1 is the contribution of the sign bit.
Method 3

Binary rep. of the corresponding positive number.
 Let V be its decimal value.
 - V is the required value.
CSc 28 Fall 2012
30
Example- 10101 in Two’s Complement
The most significant bit is 1, indicating a negative number
Method 1
(+5 – 25-1 = 5 – 24 = 5-16 = -11)
0101 = +5
Method 2
4
1
-24
3
0
2
1
22
1
0
0
1
20
=
-11
Method 3
Corresponding + number is 01011 = 8 + 2+1 = 11
the result is then –11.
CSc 28 Fall 2012
31
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
decimal value of (n-1) bits, then subtract 2n-1
Method 2
- 2n-1 is the contribution of the sign bit.
Method 3

Binary rep. of the corresponding positive number.
 Let V be its decimal value.
 - V is the required value.
CSc 28 Fall 2012
32
Exercise - 10001011
Determine the decimal value represented by 10001011
in each of the following four systems.
1. Unsigned notation?
2. Signed magnitude notation?
3. Excess notation?
4. Two’s complements?
CSc 28 Fall 2012
33
Fraction Representation
To represent fraction we need other
representations:
– Fixed point representation
– Floating point representation
CSc 28 Fall 2012
34
Fixed-Point Representation
old position
New position
Bit pattern
Contribution
7 6 5 4 3
4 3 2 1 0
1 0 0 1 1.
24
21 20
2 1 0
-1 -2 -3
1 0 1
2-1
2-3 =19.625
Radix-point
CSc 28 Fall 2012
35
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.
CSc 28 Fall 2012
36
Floating Point Representation
In decimal notation we can get around this
problem using scientific notation or floating
point notation
Number
Scientific notation
Floating-point
notation
1,245,000,000,000
1.245 1012
0.1245 1013
0.0000001245
1.245 10-7
0.1245 10-6
-0.0000001245
-1.245 10-7
-0.1245 10-6
CSc 28 Fall 2012
37
Floating Point
-15900000000000000
could be represented as
Mantissa
Sign
Base
- 159 * 1014
- 15.9 * 1015
- 1.59 * 1016
Exponent
A calculator might display 159 E14
CSc 28 Fall 2012
38
Floating point format
 M  B E
Sign
Sign
mantissa or
significand
base
Exponent
CSc 28 Fall 2012
exponent
Mantissa
39
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 is of the form 1.f then the normalised
mantissa should be f, where f is a binary sequence
CSc 28 Fall 2012
40
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
CSc 28 Fall 2012
41
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
CSc 28 Fall 2012
Mantissa
42
Basic Conversion
Converting a decimal number to a floating point number
Steps:
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
CSc 28 Fall 2012
43
IEEE – Example 1
Convert 6.75 to 32 bit IEEE format.
1. The Mantissa. The Integer first.
•
•
•
•
•
6/2 =3r0
3/2 =1r1
= 1102
1/2 =0r1
2. Fraction next.
.75 * 2 = 1.5
= 0.112
.5 * 2 = 1.0
3. put the two parts together… 110.11
Now normalise
1.1011 *
CSc 28 Fall 2012
22
44
IEEE – Example 1
Convert 6.75 to 32 bit IEEE format.
1. The Mantissa. The Integer first.
6/2 =3r0
3/2 =1r1
= 1102
1/2 =0r1
2. Fraction next.
.75 * 2 = 1.5
= 0.112
.5 * 2 = 1.0
3. put the two parts together… 110.11
Now normalise
1.1011 *
CSc 28 Fall 2012
22
45
IEEE – Example 1
Convert 6.75 to 32 bit IEEE format.
1. The Mantissa. The Integer first.
6/2 =3r0
3/2 =1r1
1/2 =0r1
2. Fraction next.
.75 * 2 = 1.5
.5 * 2 = 1.0
= 1102
= 0.112
3. Put the two parts together… = 110.11
Now normalise
1.1011
CSc 28 Fall 2012
*
22
46
IEEE Biased 127 Exponent
To generate a biased 127 exponent
Take the value of the signed exponent and add 127
Example
216 then 2127+16 = 2143
value for the exponent would be
143 = 100011112
So it is simply now an unsigned value
CSc 28 Fall 2012
47
Possible Representations of an Exponent
•
Binary
Sign Magnitude 2's
Complement
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
CSc 28 Fall 2012
Biased
127
Exponent.
-127
{reserved}
-126
-125
-1
0
1
2
127
128
{reserved}
48
Why Biased ?
The smallest exponent 00000000
Only one exponent zero 01111111
The highest exponent is 11111111
To increase the exponent by one simply add 1 to the
present pattern.
CSc 28 Fall 2012
49
Back to the example
Our original example revisited…. 1.1011 * 22
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 as .1000
6.75 in 32 bit floating point IEEE representation:0 10000001 10110000000000000000000
sign(1) exponent(8)
CSc 28 Fall 2012
mantissa(23)
50
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
CSc 28 Fall 2012
Mantissa
51
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 = 12810
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.2510
Finally, the number represented is: -1.25 x 21 = -2.50
CSc 28 Fall 2012
52
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 2127
• 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
CSc 28 Fall 2012
53
In comparison
The smallest and largest possible 32-bit integers
in two’s complement
are only
-232 and 231 - 1
2012-11-4
54
54
Range of numbers
Normalized (positive range; negative is symmetric)
smallest
00000000100000000000000000000000
+2-126× (1+0) = 2-126
largest
01111111011111111111111111111111
+2127× (2-2-23)
0
2-126
Positive underflow
2012-11-4
2127(2-2-23)
Positive overflow
55
Representation in IEEE 754 double precision
format
It uses 64 bits
– 1 bit sign
– 11 bit biased exponent
– 52 bit mantissa
Sign
Exponent
CSc 28 Fall 2012
Mantissa
56
IEEE 754 double precision
Biased = 1023
• 11-bit exponent with an excess of 1023
• For example:
If the exponent is -1
• Add 1023 to it. -1+1023 = 1022
• Find the binary representation of 1022
– which is 0111 1111 110
• The exponent field will now hold 0111 1111 110
Represent -1 with an excess of 1023
CSc 28 Fall 2012
57
IEEE 754 Encoding
Single Precision
Double Precision
Represented Object
Exponent
Fraction
Exponent
Fraction
0
0
0
0
0
0
non-zero
0
non-zero
+/- denormalized
number
1~254
anything
1~2046
anything
+/- floating-point
numbers
255
0
2047
0
+/- infinity
255
non-zero
2047
non-zero
NaN (Not a Number)
CSc 28 Fall 2012
58
58
Floating Point Representation format (summary)
Sign
Exponent
Mantissa
• Sign bit
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 is of the form 1.M then the normalised
mantissa should be M where M is a binary sequence
CSc 28 Fall 2012
59
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
• Character representation in ASCII
CSc 28 Fall 2012
60
ASCII – example
Symbol
decimal
7
8
9
:
;
<
=
>
?
@
A
B
C
55
56
57
58
59
60
61
62
63
64
65
66
67
Binary
00110111
00111000
00111001
00111010
00111011
00111100
00111101
00111110
00111111
01000000
01000001
01000010
01000011
CSc 28 Fall 2012
61
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
CSc 28 Fall 2012
62
Layered View of Representation
Text
string
Information
Information
Character
Data
Information
Data
Information
Bit string
Data
Data
Sequence of
characters
CSc 28 Fall 2012
63
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
CSc 28 Fall 2012
64
Solution
SI
‘S’ ‘I’ ‘\0’
010100110100100000000000
The colors are intended to help you read it; computers don’t care
that all the bits run together
CSc 28 Fall 2012
65
Your turn
Use the ASCII table to write the ASCII code for the
following:
CIS110
6 = 2*3
(1 space before and after the =)
CSc 28 Fall 2012
66
Unicode - representation
• ASCII code can represent only 128 = 27 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 are the same
as the one of the ASCII.
CSc 28 Fall 2012
67
Color representation
• Colours can represented using a sequence of bits.
• 256 colors – 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 color – how many possible colors can be
represented?
Hints
16 million possible colors (why 16 millions?)
CSc 28 Fall 2012
68
24-bits -- the True colour
– 24-bit color is often referred to as the true color.
– Any real-life shade, detected by the naked eye, will
be among the 16 million possible colors.
CSc 28 Fall 2012
69
Example: 2-bit per pixel
0
4=22
choices
00 (off, off)=white
01 (off, on)=light grey
10 (on, off)=dark grey
11 (on, on)=black
=
(white)
=
(light grey)
0
0
1
=
1
0
=
1
CSc 28 Fall 2012
(dark grey)
(black)
1
70
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 the
image contains
CSc 28 Fall 2012
71
Bitmap Images
Each individual pixel (pi(x)cture element) 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
CSc 28 Fall 2012
72
Representing Sound Graphically
X axis: time
Y axis: pressure
A: amplitude (volume)
: wavelength (inverse of frequency = 1/)
CSc 28 Fall 2012
73
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.
CSc 28 Fall 2012
74
Digitizing Sound
Capture amplitude at
these points
Lose all variation
between data points
Zoomed Low Frequency
Signal
CSc 28 Fall 2012
75
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
CSc 28 Fall 2012
76
Exercise
1. Represent +0.8 in the following floating-point
representation:
–
–
–
1-bit sign
4-bit exponent
6-bit normalised mantissa (significand).
2. Convert the value represented back to decimal.
3. Calculate the relative error of the representation.
CSc 28 Fall 2012
77
Download