computer structureocw.uc3m.es/.../computer-structure/unit2.pdf · 2013-01-24 · computer structure...
TRANSCRIPT
Computer Structure
Unit 2. Data representation
Departamento de InformáticaGrupo de Arquitectura de Computadores, Comunicaciones y Sistemas
UNIVERSIDAD CARLOS III DE MADRID
Unit 2. Data representation
Contents
� Concept of a computer� Introduction to information representation
� Types of information� Positional number systems
� Representations� Representations� Characters� Numbers� Float point
� Standard: IEEE 754
ARCOS Computer Structure 2
What is a computer?
Processordata
Instructions
results
ARCOS Computer Structure 3
Instructions
All information is represented using the binary system
Types of information
� Machine instructions
� Data� Characters � Numbers without sign� Numbers without sign� Numbers with sign� Real numbers
ARCOS Computer Structure 4
ProcessorData
Instructions
Results
Format of a machine instruction
001 AB 00000000101
ARCOS Computer Structure 5
Operation Code
OperandsRegisters
Memory addresses
Numbers
Positional number systems
� A number is a chain of digits. Each digit has a scale factor according to the position in the chain
� Let b be a numeration base, a number X is defined as:
b21012 )xx,xxx(X ⋅⋅⋅⋅⋅⋅= −−
The decimal value of X is:
⋅⋅⋅⋅+⋅+⋅+⋅+⋅⋅⋅⋅=⋅= −−
−−
+∞
−∞=∑ 2
21
10
01
12
2i
i
i xbxbxbxbxbxbV(X)
b21012 )xx,xxx(X ⋅⋅⋅⋅⋅⋅= −−
0 ≤ xi < b
ARCOS Computer Structure 6
Positional number systems
� BinaryX = 1 0 1 0 0 1 0 1
... 27 26 25 24 23 22 21 20
� HexadecimalY = 0x F 1 F A 8 0
... 165 164 163 162 161 160... 165 164 163 162 161 160
� From binary to hexadecimal:� Make groups of 4 bits from right to left� A group of 4 bits represents the value of the hexadecimal digit� Ex.: 1 0 1 0 0 1 0 1
0x A 5
ARCOS Computer Structure 7
Positional number systems
� How many “values” (codes) can be represented using n bits?
� How many bits are needed to represent m “values” (codes)?
ARCOS Computer Structure 8
Positional number systems
� How many “values” (codes) can be represented using n bits?� 2n
� 256 codes can be represented using 8 bits.
� How many bits are needed to represent m “values” (codes)?� How many bits are needed to represent m “values” (codes)?� Log2(n) � We need 6 bits to represent 35 codes
� Using n bits� The minimum value that can be represented is 0� The maximum value that can be represented is 2n-1
ARCOS Computer Structure 9
Example
� Represent 342 using the binary system:
weights: 256 128 64 32 16 8 4 2 1? ? ? ? ? ? ? ? ?
ARCOS Computer Structure 10
Example
� Represent 342 using the binary system:
weights : 256 128 64 32 16 8 4 2 11 0 1 0 1 0 1 1 0
342-256=86 86-64=22 22-16=6 6-4=2 2-2=0
ARCOS Computer Structure 11
Example
� Compute the decimal value of 23 1´s:
111111111111111111111112
ARCOS Computer Structure 12
Example
� Compute the decimal value of 23 1´s:
111111111111111111111112
X = 223 - 1
11111111111111111111111 2 = X + 00000000000000000000001 2 = 1
100000000000000000000000 2 = 2 23
X = 2 23 - 1
ARCOS Computer Structure 13
Addition example
1 0 1 0
+ 0 1 1 1
11
ARCOS Computer Structure 14
+ 0 1 1 1
1 0 0 0 1
Prefix
Number Abr Factor IS
Kilo K 210 = 1,024 103 = 1,000
Mega M 220 = 1,048,576 106 = 1,000,000
Giga G 230 = 1,073,741,824 109 = 1,000,000,000
Tera T 240 = 1,099,511,627,776 1012 = 1,000,000,000,000
Peta P 250 = 1,125,899,906,842,624 1015 = 1,000,000,000,000,000
Exa E 260 = 1,152,921,504,606,846,976 1018 = 1,000,000,000,000,000,000
ARCOS Computer Structure 15
� 1 KB = 1024 bytes, but in IS is 1000 bytes� Hard drives and manufactures and telecommunications use the IS
� A hard drive of 30 GB stores 30 x 109 bytes� A 1 Mbit/s network transmits 106 bps.
Exa E 2 = 1,152,921,504,606,846,976 10 = 1,000,000,000,000,000,000
Zetta Z 270 = 1,180,591,620,717,411,303,424 1021 = 1,000,000,000,000,000,000,000
Yotta Y 280 = 1,208,925,819,614,629,174,706,176
1024 = 1,000,000,000,000,000,000,000,000
Example
� How many bytes can store a 200 GB hard drive?
� How many bytes per second does transmit an ADSL of 20 Mb?Mb?
ARCOS Computer Structure 16
Solution
� How many bytes can store a 200 GB hard drive?� 200 GB = 200 * 109bytes = 186.26 Gigabytes
� How many bytes per second does transmit an ADSL of 20 Mb?Mb?� B → Byte � b → bit.� 20 Mb = 20 * 106bits = 20 * 106 / 8 bytes = 2.38 Megabytes
per second
ARCOS Computer Structure 17
Typical sizes
� Octet, char or byte� Character representation� 8 bits typically
� Word� Information that can be managed in parallel in the computer� Information that can be managed in parallel in the computer� Typically 32, 64 bits
� Half word� Double word
ARCOS Computer Structure 18
Representation of characters
� Each char is coded using a byte.
� Using n bits ⇒⇒⇒⇒ 2n possible chars:� 6 bits(64 chars)
� 26 letters (A...Z), 10 numbers(0...9), marks (. , ; : ...) y specials(+ - [ ...)� Example: BCDIC
� 7 bits(128 chars)� Includes uppercase, lowercase, control chars� Includes uppercase, lowercase, control chars� Example : ASCII
� 8 bits(256 chars)� Includes accented letters, ñ, semigraphical chars� Example : EBCDIC y extended ASCII
� 16 bits(34.168 chars )� Different languages (Chinese ,...)� Example: UNICODE
ARCOS Computer Structure 19
Representation of characters
� Systems:� EBCDIC (8 bits)� ASCII (8 bits)� Unicode (8 bits)
� Each char is represented using a numerical code
ARCOS Computer Structure 20
Example: ASCII table (7 bits)
Computer Structure 21ARCOS
ASCII code. Properties
� Chars from ‘0’ to ‘9’ are consecutives� Simplify checking a digit� Simplify the operation to obtain a value� Why?
� Uppercases and lowercases differ in only one bit � Uppercases and lowercases differ in only one bit � Simplify conversions
� Control chars are located in a range� Simplify the interpretation
ARCOS Computer Structure 22
Strings
� Fixed length strings
� Variable length strings with a separator
� Variable length strings with the length in the header� Variable length strings with the length in the header
ARCOS Computer Structure 23
Fixed length strings
ARCOS Computer Structure 24
Variable length strings with the size
ARCOS Computer Structure 25
Variable length strings with a separator
ARCOS Computer Structure 26
Numbers representation
� Numbers:� Natural numbers: 0, 1, 2, 3, ...
� Integers (signed numbers): ... -3, -2, -1, 0, 1, 2, 3, ....
� Rational numbers: fractions(5/2 = 2,5)
� Irrational numbers: 21/2, π, e, ...
� Infinite sets and a fixed representation space� It is impossible to represent all numbers
Computer Structure 27ARCOS
Problems with the number representation
in a computer
� Any set of numbers is infinite
� Irrational numbers are not representabled by infinite digits required
� Finite physical space representation
� A sequence of n bits can represent 2n different codes
ARCOS Computer Structure 28
Representation features
� Representation range: � Interval between the lowest and highest numbers
� Precision:� Not all numbers can be represented accurately
� Resolution: � Resolution:
� Difference between a representable number and the immediately following
� Resolution= maximum error in the representation
� Resolution can be:� The resolution can be constant throughout the range.
� Variable (float point)
ARCOS Computer Structure 29
Typical number representation systems
� Natural numbers (no sign)� Fixed point without sign or binary
� Signed numbers (sign):� Sign-magnitud� Sign-magnitud� One’s complement� Two’s complement� Excess representation
� Real numbers� Float point: IEEE Standard 754
ARCOS Computer Structure 30
Binary representation
� Positional system in base 2
0n bits
n-1
i
1n
0i
i x2V(X) ⋅= ∑−
=
Range: [0, 2n -1]• Range: [0, 2n -1]• Resolution: 1 unit
Computer Structure 31ARCOS
Signed number representations
� Sign-magnitud� One’s complement� Two’s complement� Excess representation
ARCOS Computer Structure 32
Sign-magnitude
� Use a sign bit (S) (0 ⇒ +; 1 ⇒ -)
0Magnitude (n-1 bits)
n-1 n-2S
2ni x2V(X) ⋅=∑
−
Si x = 0
Range: [-2n-1 +1, 2n-1 -1]Range: [-2n-1 +1, 2n-1 -1]Resolution: 1 unit
i0i
i x2V(X) ⋅=∑=
i
2n
0i
i x2V(X) ⋅−= ∑−
=
i
2n
0i
i1n x2)x21(V(X) ⋅⋅⋅−= ∑
−
=−
Si x n-1= 0
Si x n-1= 1⇒⇒⇒⇒
Computer Structure 33ARCOS
Example
� With n = 6 bits
� The number 7 is coded as: 00111 � First bit is the sign
� The number -7 is coded as: 10111� First bit is the sign
ARCOS Computer Structure 34
Example
� Can we represent the number 745 in sign-magnitude with 10 bits?
ARCOS Computer Structure 35
Example
� Can we represent the number 745 in sign-magnitude with 10 bits?
� Solution:� With 10 bits the range in sign-magnitude is:With 10 bits the range in sign-magnitude is:
[-29+1,…,-0,+0,….29-1] ⇒ [-511, 511]then, we cannot represent 745
ARCOS Computer Structure 36
Sign-magnitude problems
� Two codes to represent 0:� With n = 5 bits:
� 00000 represent 0� 10000 represent 0
� Different circuits for addition/substraction
ARCOS Computer Structure 37
One’s complement
� Positive number: � Is coded in binary with n-1 bits
Magnitude(n-1 bits) n-1 n-2 00
ARCOS Computer Structure 38
Range: [0, 2n-1 -1]• Range: [0, 2n-1 -1]• Resolution: 1 unit
Magnitude(n-1 bits) 0
i
2n
0i
ii
1n
0i
i x2x2V(X) ⋅=⋅= ∑∑−
=
−
=
One’s complement
� Negative number: � The number X < 0 is coded as 2n – X - 1
� Is complemented: change 0´s by 1´s and 1´s by 0´s� The number has 1 in the first bit
� This bit is nota signed bit, it belongs to the number
ARCOS Computer Structure 39
Range: [-2n-1+1, -0]• Range: [-2n-1+1, -0]• Resolution: 1 unit
122V(X) i
1
0i
i −⋅+−= ∑−
=
xn
n
n-1 n-2 01
One’s complement
� First bit in positive numbers is 0� First bit in negative numbers is 1
ARCOS Computer Structure 40
00000 00001 01111...
111111111010000 ...
0 representation
Example
� With n = 5 bits� X = 5
� Is coded in one’s complement as:� 00101
� X = -5 � X = -5 � Is coded in one’s complement as:
� How is the value of 00111 in one’s complement?� It is a positive number, the value is 7
� How is the value of 11000 in one’s complement?� It is negative, the number is complemented: 00111 (7)
� The value is -7
ARCOS Computer Structure 41
Addition and subtraction
� With n = 5 bits
� X = 5
� In one’s complement = 00101
� Y = 7
In one’s complement = 00111� In one’s complement = 00111
� ¿X + Y?
X = 00101
Y = 00111+
X+Y = 01100
� The value 01100 in one’s complement is 12
ARCOS Computer Structure 42
Addition and subtraction
� With n = 5 bits
� X = -5
� In one’s complement = complement of 00101: 11010
� Y = -7
� In one’s complement = complement of 00111: 11000
� ¿X + Y?
-X = 11010
-Y = 11000+
-(X+Y) = 110010 A carry is generated and is added
1
10011
� The value of 10011 in one’s complement is negative and the complement is -01100 = - 12
ARCOS Computer Structure 43
Why the carry is discarded?
� -X is coded as 2n – X – 1� -Y is coded as 2n – Y – 1� -(X + Y) is coded as 2n – (X+Y) - 1
� When –X – Y is added, we obtain:� When –X – Y is added, we obtain:
-X = 2n – X – 1
-Y = 2n – Y – 1
-(X+Y) = 2n + 2n – (X + Y) – 2
The result is corrected discarding the carry
2n (a carry bit) and adding it to the result
=> 2n – (X + Y) – 1
ARCOS Computer Structure 44
One’s complement problems
� Multiple representations of 0� With n = 5 bits
� 00000 represent 0� 11111 represent 0
� Range for positives: [0, -2n-1-1]� Range for negatives: [-(2n-1-1), 0]
ARCOS Computer Structure 45
Two’s complement
� Positive numbers: � In binary with n-1 bits
Magnitude(n-1 bits) n-1 n-2 00
Range : [0, 2n-1 -1]• Range : [0, 2n-1 -1]• Resolution: 1 unidad
Magnitude(n-1 bits) 0
i
2n
0i
ii
1n
0i
i x2x2V(X) ⋅=⋅= ∑∑−
=
−
=
Computer Structure 46ARCOS
Two’s complement
� Negative numbers: � Is base complemented. X< 0 is coded as 2n – X � First bit: is Not a signed bit, it belongs to the number value
n-1 n-2 0
Range: [-2n-1, -1]• Range: [-2n-1, -1]• Resolution: 1 unit
n-1 n-2 01
i
1
0i
i22 yV(X)n
n ⋅+−= ∑−
=
Computer Structure 47ARCOS
Two’s complement
� Ejemplo: Para n=5 ⇒ 00011 = + 3 � Example: with n=5, -3 = 11101
� 11101 ⇒ We obtain the one’s complement representation of
� If X > 0, two’s complement of X = X
� If X < 0, two’s complement of -X = (one’s complement of X) + 1
� 11101 ⇒ We obtain the one’s complement representation of11101, and adds 1 ⇒ = 00010 + 1 = 00011� i.e: -3
Range: [-2n-1, 2n-1-1]• Range: [-2n-1, 2n-1-1]• Resolution: 1 unit• There is only one zero (No ∃ -0)• Asymmetric range
Computer Structure 48ARCOS
Two’s complement
0000100010
1111111110 0 1
2-1
-2
. .
-311101
-411100
� 2N-1 positives
� 2N-1 negatives
� One zero
ARCOS Computer Structure 49
10000 0111110001
-15 -16 15
.
.
.
.
.
.
Two’s complement using 32 bits
0000 ... 0000 0000 0000 0000dos= 0(10
0000 ... 0000 0000 0000 0001dos= 1(10
0000 ... 0000 0000 0000 0010dos= 2(10
. . .0111 ... 1111 1111 1111 1101 = 2,147,483,6450111 ... 1111 1111 1111 1101dos= 2,147,483,645(10
0111 ... 1111 1111 1111 1110dos= 2,147,483,646(10
0111 ... 1111 1111 1111 1111dos= 2,147,483,647(10
1000 ... 0000 0000 0000 0000dos= –2,147,483,648(10
1000 ... 0000 0000 0000 0001dos= –2,147,483,647(10
1000 ... 0000 0000 0000 0010dos= –2,147,483,646(10
. . . 1111 ... 1111 1111 1111 1101dos= –3(10
1111 ... 1111 1111 1111 1110dos= –2(10
1111 ... 1111 1111 1111 1111dos= –1(10
ARCOS Computer Structure 50
Addition and subtraction
� With n = 5 bits
� X = 5
� In two’s complement = 00101
� Y = 7
Is two’s complement = 00111� Is two’s complement = 00111
� X + Y?
X = 00101
Y = 00111+
X+Y = 01100
� The value of 01100 in two’s complement is 12
ARCOS Computer Structure 51
Addition and subtraction
� With n = 5 bits
� X = -5
� In two’s complement = 11010 + 1 = 11011
� Y = -7
� In two’s complement = 11000 +1 = 11001
� X + Y?
-X = 11011
-Y = 11001+
-(X+Y) = 110100 discard the carry
� The result is 10100. The value is 01011 + 1 = 01100 = >- 12
ARCOS Computer Structure 52
Addition and subtraction
� With n = 5 bits
� X = 8
� In two’s complement = 01000
� Y = 9
In two’s complement = 01001� In two’s complement = 01001
� ¿X + Y?
X = 01000
Y = 01001+
X+Y = 10001
� A negative value is obtained ⇒ overflow
ARCOS Computer Structure 53
Addition and subtraction
� With n = 5 bits
� X = -8
� In two’s complement = 10111 + 1 = 11000
� Y = -9
� In two’s complement = 10110 +1 = 10111
� X + Y?
-X = 11000
-Y = 10111+
-(X+Y) = 101111 The carry is discarded
� The result 01111, is positive ⇒ overflow
ARCOS Computer Structure 54
Overflows in two’s complement
� Addition of two negative numbers ⇒ positive number� Addition of two positive numbers ⇒ negative number
ARCOS Computer Structure 55
Sign extension in two’s complement
� How to represent a number of n bits with m bits, being n < m?
� Example:� n = 4, m = 8� X = 0110 with 4 bits ⇒ X = 00000110 with 8 bits� X = 0110 with 4 bits ⇒ X = 00000110 with 8 bits� X = 1011 with 4 bits ⇒ X = 11111011 with 8 bits
ARCOS Computer Structure 56
Excess representation (2n-1-1)
Biased notation
� With n bits, 2n-1-1 is added to the value to be represented. The bias is 2n-1-1
0n bits
n-1
1−n
1)(2 - 2 V(X) 1ni
1
0i
i −⋅= −−
=∑ xn
Range: [-2n-1 +1, 2n -1]• Range: [-2n-1 +1, 2n -1]• Resolution: 1 unit• Only one zero
Computer Structure 57ARCOS
Comparative example(3 bits)
Decimal Binary Sign-magnitude One’s complement Two’s complement Excess-3
+7 111 N.D. N.D. N.D. N.D.
+6 110 N.D. N.D. N.D. N.D.
+5 101 N.D. N.D. N.D. N.D.
+4 100 N.D. N.D. N.D. 111
+3 011 011 011 011 110
+2 010 010 010 010 101
+1 001 001 001 001 100+1 001 001 001 001 100
+0 000 000 000 000 011
-0 N.D. 100 111 N.D. N.D.
-1 N.D. 101 110 111 010
-2 N.D. 110 101 110 001
-3 N.D. 111 100 101 000
-4 N.D. N.D. N.D. 100 N.D.
-5 N.D. N.D. N.D. N.D. N.D.
-6 N.D. N.D. N.D. N.D. N.D.
-7 N.D. N.D. N.D. N.D. N.D.
Computer Structure 58ARCOS
Example
� The value 110110 (6 bits)� What is the value?� In binary system= 25 + 24 + 22 + 21 = 52(10
� In sign-magnitude = - (24 + 22 + 21) = -21(10
� In one’s complement� Is complemented⇒ 001001 = 9(10� Is complemented⇒ 001001 = 9(10
� The value is -9(10
� In two’s complement� Is complemented ⇒ 001001 = 9. Add1 = 001010 = 10� The value is -10(10
� Excess-31 (26-1 -1 = 31)� Value of 110110(2 = 52(10
� Value stored= 52 – 31 = 21(10
ARCOS Computer Structure 59
Example
� Represent the following numbers
1. -17 is sign-magnitude with 6 bits2. +16 in two’s complement with 5 bits
-16 in two’s complement with 5 bits3. -16 in two’s complement with 5 bits4. +15 in one’s complement with 6 bits
ARCOS Computer Structure 60
Solution
1. 110001
2. With 5 bits we can not represent -17 :[-25-1 , 25-1-1] = [-16 , 15]
3. 100003. 10000
4. 001111
ARCOS Computer Structure 61
Example
� Using 5 bits, compute the followingg additions in one’s complement
a) 4 +12b) 4 -12c) –4 -12c) –4 -12
ARCOS Computer Structure 62
Solution
� Using 5 bits in one’s complement:a) 4 +12
0010001100----------------10000 ⇒ -15 ⇒ overflow
ARCOS Computer Structure 63
Solution
� Using 5 bits in one’s complement:b) 4 - 12
0010010011----------------10111⇒ -8
ARCOS Computer Structure 64
Solution
� Using 5 bits in one’s complement:c) -4 - 12
1101110011----------------
101110 ⇒ 6 bits are needed ⇒ overflow
ARCOS Computer Structure 65
Review
� Using N bits, we can represent:� 2N different codes� Numbers without sign:
0 a 2N - 1for N=32, 2N–1 = 4.294.967.295for N=32, 2 –1 = 4.294.967.295
� Signed-numbers in two’s complement:-2(N-1) a 2(N-1) - 1
for N=32, 2(N-1) = 2.147.483.648
ARCOS Computer Structure 66
Other things to represent
� How to represent?
� Very large numbers: 30.556.926.000(10
� Very small numbers: 0.0000000000529177(10(10
� Fractional numbers: 1,58567
� Real numbers
ARCOS Computer Structure 67
Fractional values in binary
� Example with 6 bits:
xx.yyyy21
20 2-1 2-2 2-3 2-4
ARCOS Computer Structure 68
2 20 2-1 2-2 2-3 2-4
� 10,1010(2 = 1x21 + 1x2-1 + 1x2-3 = 2.62510� Using this point, the range is:
� 0 a 3.9375 (almost 4)
Fractional powers of 2
0 1.0 1
1 0.5 1/2
2 0.251/4
3 0.125 1/8
4 0.0625 1/16
i 2-i
ARCOS Computer Structure 69
4 0.0625 1/16
5 0.03125 1/32
6 0.015625
7 0.0078125
8 0.00390625
9 0.001953125
10 0.0009765625
Floating-point numbers
� Each number has an exponent
� Scientific notation (in decimal) → normalized form, only one digit different to 0 to left of decimal point
ARCOS Computer Structure 70
6.0210 x 1023
radix (base)decimal point
mantissaexponent
Scientific notation in binary
1.0(2 x 2-1
radix (base)binary point
exponentmantissa
� Normalized form: One 1(only one digit) to the left of binary point
� Normalized: 1.0001 x 2-9
� Not normalized: 0.0011 x 2-8, 10.0 x 2-10
ARCOS Computer Structure 71
IEEE 754 Floating Point Standard
� Standard used to store floating point values in computers
Characteristics
Sign
bit
ExponentMantisa (Significand)
� Characteristics� Exponent: Excess-k, with k=2n-1 -1 (being n the number of bits used
for the exponent)� Mantissa: sign-magnitude, normalized with implicit bit, similar to:
M = 1,xx…
Computer Structure 72ARCOS
IEEE 754 Floating Point Standard
Format Bits Base Mantissa Exponent Excess-k
Single 32 2 23 bits 8 bits 127
Double 64 2 52 bits 11 bits 1023
ARCOS Computer Structure 73
Double 64 2 52 bits 11 bits 1023
Normalized numbers
� In this standard, numbers must be normalized:
� 1,bbbbbbb × 2e� mantissa: 1,bbbbbb (being b = 0, 1)� 2 is the base of the exponent� e is the exponent
Computer Structure 74ARCOS
Normalization
� Normalization: we need to normalize the mantissa. The exponent is adjusted to obtain one 1 in the most significant bit of the number� Example: 1.111001x 23 (already normalized)� Example: 1111.101 x 23 Not normalized, we move the decimal point
to left� 1111,101 x 23 = 1,111101 x 26
� 1,111101 x 26 normalized
Computer Structure 75ARCOS
IEEE Standard 754 (single precision)
S: sign (1 bit)
E: exponent (8 bits)
M: mantissa (23 bits)
S E M
319810bits
� The value is computed as:N = (-1)S ×××× 2 E-127 ×××× 1.M
� where:S = 0 for positive numbers, S =1 for negative numbers0 < E < 255 (E=0 y E=255 are exceptions)00000000000000000000000 ≤ M ≤ 11111111111111111111111
� Implicit bit: when the number is normalized, the most significant bit is not stored in M. In this way, we can get more precision
Computer Structure 76ARCOS
Example
� Represent 7.5 and 1.5 using the IEEE 754 format
Computer Structure 77ARCOS
Solution
7.5 = 111.1 × 20 = 1.111 × 22
1.5 = 1.1 × 20
Computer Structure 78ARCOS
Solución
7.5 = 111.1 × 20 = 1.111 × 22
Sign = 0 (positive)Exponent = 2 -> exponent to store = 2 + 127= 129 = 10000001Mantissa = 1.111 -> mantissa to store = 1110000 … 0000Mantissa = 1.111 -> mantissa to store = 1110000 … 0000
1.5 = 1.1 × 20Sign = 0 (positive)Exponent = 0 -> exponent to store = 0 + 127= 127 = 01111111Mantissa = 1.1 -> mantissa to store = 1000000 … 0000
Computer Structure 79ARCOS
Solution
7.5 → 0 10000001 11100000000000000000000
7.5 = 111.1 × 20 = 1.111 × 22
1.5 → 0 01111111 10000000000000000000000
1.5 = 1.1 × 20
Computer Structure 80ARCOS
IEEE Standard 754 (single precision)
� Special cases:
Exponent Mantissa Special value
0 (0000 0000) 0 +/- 0
× ×(s) × 0.mantissa × 2-126
0 (0000 0000) No cero Number not normalized
255 (1111 1111) No cero NaN (0/0, sqrt(-4), ….)
255 (1111 1111) 0 +/- infinite
1-254 Any Valor normal (no especial)
× ×(s) × 1.mantissa × 2exponent-127
Computer Structure 81ARCOS
IEEE Standard 754 (single precision)
� Example:
a) Calculate the value of this number0 10000011 11000000000000000000000 represented in IEEE Standard 754 of single precision
a) Sign bit: 0 ⇒ positive number
b) Exponent: 100000112 = 13110 ⇒ E - 127 = 131 - 127 = 4
c) Mantissa stored: 11000000000000000000000
d) Mantisa: 1,1100 ⇒ 1 + 1 × 2-1 + 1 × 2-2 = 1,75
The value is 1.75 × 24 = 28
Computer Structure 82ARCOS
IEEE Standard 754 (single precision)
Range
� Range for mantissa:
� Lowest number normalized:1.000000000000000000000002 × 2 1-127= 2-126
� Largest number normalized:1.111111111111111111111112 × 2 254-127= (2 - 2-23) × 2127
Trick:1.111111111111111111111112 = X
+ 0.000000000000000000000012 = 2-23------------------------------------------------------------------------------------------------------------------------------------------------------------
10.000000000000000000000002 = 2
X = 2 - 2-23
Computer Structure 83ARCOS
IEEE Standard 754 (single precision)
Range
� Range for mantissa:
� Lowest number not normalized :0.000000000000000000000012 × 2-126 = 2-149
� Largest number not normalized: 0.111111111111111111111112 × 2-126 = (1 - 2-23) × 2-126
Trick:0.11111111111111111111111112 = X
+ 0.000000000000000000000012 = 2-23------------------------------------------------------------------------------------------------------------------------------------------------------------
1.000000000000000000000002 = 1
X = 1 - 2-23
Computer Structure 84ARCOS
How many not normalized numbers
different to zero can be represented?
Exponent Mantissa Special value
× ×(s) × 0.mantissa × 2-126
ARCOS Computer Structure 85
0 (0000 0000) No cero Number not normalized
How many not normalized numbers
different to zero can be represented?
Exponent Mantissa Special value
× ×(s) × 0.mantissa × 2-126
� Solution:� 23 bits for mantissa (different to 0)
223 -1
ARCOS Computer Structure 86
0 (0000 0000) No cero Number not normalized
Discrete representation
+-
ARCOS Computer Structure 87
0+-
� Density decreases toward infinity
Exercise
� Let f(1,2) = number of floats between 1 and 2� Let f(2,3) = number of floats between 2 and 3
� Which is larger f(1,2) o f(2,3)?
ARCOS Computer Structure 88
Exercise
� Let f(1,2) = number of floats between 1 and 2� Let f(2,3) = number of floats between 2 and 3
� Which is larger f(1,2) o f(2,3)?
� solution:� 1 = 1.0 × 20
� 2 = 1.0 × 21
� 3 = 1.1 × 21
� Between 1 and 2 there are 223 numbers� Between 2 and 3 there are 222 numbers
ARCOS Computer Structure 89
Curiosity
0.4 → 0 01111101 10011001100110011001101
3.9999998 e-13.9999998 e-1
0.1 → 0 01111011 10011001100110011001100
9.9999994 e-2
Computer Structure 90ARCOS
Example
� What is the binary and decimal value of the following number represented in the IEEE 754 standard?3FE00000
ARCOS Computer Structure 91
Solución
� Binary value:3 F E 0 0 0 0 0
0011 1111 1110 0000 0000 0000 0000 0000
� In decimal:0011 1111 1110 0000 0000 0000 0000 00000011 1111 1110 0000 0000 0000 0000 0000� Sign: 0� Exponent: 01111111 ⇒ 127-127 = 0� Mantissa: 1.11000000000000000000000 ⇒ 1+0.5+0.25 = 1.75
Then, the value is +1 × 1.75 × 20 = 1.75
ARCOS Computer Structure 92
Arithmetic on floating-point numbers
� Additions and subtractions:1) Check zero values.
2) Adjust mantissas (adjust exponents).
3) Add or subtract mantissas.
4) Normalize the result
Computer Structure 93ARCOS
Additions and subtractions
1. Check exponent: shift the smaller numberto right in order to make exponents equals
2. Add mantissasEnd
¿X = 0? ¿Y = 0?Z = X × Y
Yes
No
Z = Y
No
Yes
Z = X
ARCOS Computer Structure 94
¿Overflow
or underflow?Exception
3. Normalize result
4. Round
Normalized?
Si
Si
end
Arithmetic on floating-point numbers
� Examples
N1 = 0 10000001 11100000000000000000000 = +7.5
Computer Structure 95
N2 = 0 01111111 10000000000000000000000 = +1.5
ARCOS
Arithmetic on floating-point numbers
� Subtract the exponents:
E1 = 10000001 ⇒ Actual exponent = 129 -127 = 2
E2 = 01111111 - ⇒ Actual exponent = 127
00000010 = 2(10
� Shift the mantissa with the smaller exponent (1.M2) two bits
Computer Structure 96
� Shift the mantissa with the smaller exponent (1.M2) two bits to left (E1-E2) in order to make the exponents equals, including the implicit bit
� 1.M2=1.10000000000000000000000
⇒ 0.01100000000000000000000
ARCOS
Arithmetic on floating-point numbers
� Add mantissas: 1.M1, y 1.M2 :M1 = 1.11100000000000000000000M2 = 0.01100000000000000000000 +MS = 10.01000000000000000000000
� Result: 10.01 × 22
� Normalize the result: 1.001 x × 23 = 9(10
Computer Structure 97
� The final result is:Result= 0 10000010 00100000000000000000000 � 0 ⇒ + � e = 3 ⇒ E = 127 + 3 = 10000010� Mantissa = 1.00100000000000000000000, The mantissa stored is
00100000000000000000000
ARCOS
Arithmetic on floating-point numbers
� Multiplications and divisions:
1. Check zero values.
2. Add (subtract) exponents.
3. Multiply (divide) mantissas .
Computer Structure 98
4. Normalize.
5. Round.
ARCOS
Floatint-point
multiplication
Multiplication
¿X = 0?
Z 0
END
¿Y = 0?Addexponents
Subtract bias
Overflow
¿Exponentunderflow?
No
NoYes
Yes
Yes
YesYes
Exponentoverfllow?
underflow
Z = X × Y
Computer Structure •99
¿Exponentunderflow?
Normalize
Round END
No
Multiplymantissas
ARCOS
Floating-point
division
DIVIDE
¿X = 0?
Z 0
END
¿Y = 0?
Z ∞
Subtractexponents
Add bias
Exponentoverflow?
Exponentunderflow?
Underflow
No
No
No
Yes
YesYes
Yes Overflow
Z = X / Y
Computer Structure 100
Divide mantissas
Normalize
Round END
No
ARCOS
Example
� Multiply 7.5 y 1.5
Computer Structure 101ARCOS
Solution (1)
7.5 × 1.5 = (1.1112 × 22) × (1.12 × 20) = (1.1112 × 1,12) × 2(2+0)
= (10.11012) × 22= (10.11012) × 2= (1.011012) × 23
= 11.25
Computer Structure 102ARCOS
Solution (2)
7.5 → 0 10000001 1.11100000000000000000000
1.5 → 0 01111111 1.10000000000000000000000×
Computer Structure 103ARCOS
Include the implicit bit
Solution (3)
7.5 → 0 10000001 1. 11100000000000000000000
1.5 → 0 01111111 1. 10000000000000000000000×
� Add the exponents and multiply mantissas
0 100000000 10.11010000000000000000000
Computer Structure 104ARCOS
×+
Exponent with 9 bits
Solution(4)
7.5 → 0 10000001 1. 11100000000000000000000
1.5 → 0 01111111 1. 10000000000000000000000×
� Subtract the bias (127)
0 100000000 10.11010000000000000000000
Computer Structure 105ARCOS
×
0 10000001 10.11010000000000000000000
+
- 01111111
Solution(5)
7.5 → 0 10000001 1.11100000000000000000000
1.5 → 0 01111111 1.10000000000000000000000×
� Normalize
11.25 0 10000010 1.011010000000000000000000
Computer Structure 106ARCOS
Solution(6)
11,25 0 10000010 011010000000000000000000
� Eliminate the implicit bit
Computer Structure 107ARCOS
Rounding and guard bits
� The floating-point hardware includes two extra bits (guard bits) before to make the arithmetic operations
� After operations, these bits are eliminated: rounding
� Rounding appears when:� A double precision value is converted to single precision� A double precision value is converted to single precision� A floating-point number is converted to integer
Computer Structure 108ARCOS
Guard bits
� Add 2.56 x 100 y 2.34x 102 assuming we have only 3 decimal digits for mantissas:
2.56 x 100 0.02 x 102
ARCOS Computer Structure 109
2.56 x 10
+ 2.34x 102
0.02 x 102
+ 2.34x 102
2,36 x 102Adjust exponent
Guard bits
� Add 2.56 x 100 y 2.34x 102 assuming we have only 3 decimal digits for mantissas using two guard digits
2.56 x 100 2.5600 x100
ARCOS Computer Structure 110
2.56 x 10
+ 2.34x 102
2.5600 x10
+ 2.3400x 102
Include twoextra guarddigits
Guard bits
� Add 2.56 x 100 y 2.34x 102 assuming we have only 3 decimal digits for mantissas using two guard digits
2.5600 x100 0.0256 x102
ARCOS Computer Structure 111
2.5600 x10
+ 2.3400x 102
Adjust theexponent
0.0256 x102
+ 2.3400x 102
2.3656 x 102
Round
2.37 x 102
Rounding in IEEE Standard 754
� Round to + ∞�Round up: 2.001 → 3, -2.001 → -2
�Round to -∞� Round down 1.999 → 1, -1.999 → -2
�Truncate� discard last bits� discard last bits
�Round to nearest even�2.4 → 2, �2.6 → 3, �2.5 → 2,� 3.5 → 4
Computer Structure 112ARCOS
Floating-point is not associative
� Floating-point is not associative� x = – 1.5 × 1038, y = 1.5 × 1038, y z = 1.0
� x + (y + z) = –1.5× 1038 + (1.5× 1038 + 1.0)= –1.5× 1038 + (1.5× 1038) = 0.0
× ×= –1.5× 10 + (1.5× 10 ) = 0.0
� (x + y) + z = (–1.5× 1038 + 1.5× 1038) + 1.0= (0.0) + 1.0 = 1.0
� Floating-point operations are not associatives� Results are approximated� 1.5 × 1038 is so much larger than 1.0 � 1.5 × 1038 + 1.0 in floating point representation is still 1.5 ×
1038
ARCOS 113Computer Structure
int →→→→ float →→→→ int
if (i == (int)((float) i)) {
printf(“true”);
}
� Will not always print “true”� Most large values of integers don’t have exact floating
point representations!� What about double ?
ARCOS 114Computer Structure
Example
� The number 133000405 in binary is:� 111111011010110110011010101 (27 bits)
� 111111011010110110011010101 × 20
� When is normalized:� 1, 11111011010110110011010101 × 226� 1, 11111011010110110011010101 × 2� S = 0 (positive)� e = 26 → E = 26 + 127 = 153� M = 11111011010110110011010 (last 3 bits are lost)
� The normalized number stored is:� 1, 11111011010110110011010 × 226 =� 111111011010110110011010 × 23 = 133000400
ARCOS Computer Structure 115
float →→→→ int →→→→ float
� Will not always print “true”
if (f == (float)((int) f)) {
printf(“true”);
}
� Will not always print “true”� Small floating point numbers (<1) don’t have integer
representations� For other numbers, rounding errors
ARCOS Computer Structure 116