KIẾN TRÚC MÁY TÍNH & HỢP NGỮ 03 – Biểu diễn số thực 1
1
KIN TRC MY TNH &HP NG03 Biu din s thc
t vn 2
Biu din s 123.37510 sang h nh phn?
tng n gin: Biu din phn nguyn v phn thp phn ring l
Vi phn nguyn: Dng 8 bit ([010, 25510]) 12310 = 64 + 32 + 16 + 8 + 2 + 1 = 0111 10112
Vi phn thp phn: Tng t dng 8 bit0.375 = 0.25 + 0.125 = 2-2 + 2-3 = 0110 00002
123.37510 = 0111 1011.0110 00002
Tng qut cng thc khai trin ca s thp phn h nh phn:
xn1 xn2 ...x0 .x1 x2 ...xm xn1.2n1 xn2 .2n2... x0 .20 x1.21 x2 .22 ... xm 2 m
t vn 3
Tuy nhinvi 8 bit:
Phn nguyn ln nht c th biu din: 255 Phn thp phn nh nht c th biu din: 2-8 ~ 10-3 = 0.001
Biu din s nh nh 0.0001 (10-4) hay 0.000001 (10-5)? Mt gii php: Tng s bit phn thp phn
Vi 16 bit cho phn thp phn: min = 2-16 ~ 10-5
C v khng hiu quCch tt hn ?
Floating Point Number (S thc du chm ng)
Floating Point Number ?4
Gi s ta c s ( dng nh phn)
X = 0.00000000000000112 = (2-15 + 2-16)1014 s 0
X = 0.112 * (2-14)10 (= (2-1 + 2-2).2-14 = 2-15 + 2-16)
Thay v dng 16 bit lu tr phn thp phn, ta c th ch cn 6 bit:X = 0.11 1110
Cch lm: Di chuyn v tr du chm sang phi 14 v tr, dng 4 bit lu tr s 14 ny
y l tng c bn ca s thc du chm ng (floating point number)
Chun ha s thp phn5
Trc khi cc s c biu din di dng s chm ng, chng cn c chun ha v dng: 1.F * 2E
F: Phn thp phn khng du (nh tr - Significant) E: Phn s m (Exponent)
V d:
+0.0937510 = 0.000112 = +1.1 * 2-4
-5.2510
= 101.012 = -1.0101 * 22
Biu din s chm ng6
C nhiu chun nhng hin nay chun IEEE 754 c dng nhiu nht lu tr s thp phn theo du chm ng trong my tnh, gm 2 dng: (slide sau)
Biu din s chm ng7
S chm ng chnh xc n (32 bits):Exponent (biased) 8 bits Significand 23 bits
Sign 1 bit
S chm ng chnh xc kp (64 bits):Exponent (biased) 11 bits Significand 52 bits
Sign 1 bit
Sign: Bit du (1: S m, 0: S dng) Exponent: S m (Biu din di dng s qu K (Biased) vi
Chnh xc n: K = 127 (2n-1 - 1 = 28-1 - 1) vi n l s bit lu tr Exponent Chnh xc kp: K = 1023 (2n-1 - 1 = 211-1 - 1)
Significand (Fraction): Phn nh tr (phn l sau du chm)
V d8
Biu din s thc sau theo dng s chm ng chnh xc n (32 bit): X = -5.25
Bc 1: i X sang h nh phnX = -5.2510 = -101.012
Bc 2: Chun ha theo dng 1.F * 2E X = -5.25 = -101.01 = -1.0101 * 22
Bc 3: Biu din Floating Point
S m: bit du Sign = 1 S m E = 2 Phn m exponent vi s tha K=127 c biu din: Exponent = E + 127 = 2 + 127 = 12910 = 1000 00012
Phn nh tr = 0101 0000 0000 0000 0000 000 (Thm 19 s 0 cho 23 bit)
Kt qu nhn c: 1 1000 0001 0101 0000 0000 0000 0000 000
Tho lun v exponent9
V sao phn s m exponent khng gi nguyn li phi lu tr di dng s qu K (Dng biased)?
Gi s trong s chm ng chnh xc n (32 bits), ta dng 8 bits lu gi tr exponent (biu din di dng s qu K), vy min gi tr ca n l [0, 255]
Vi K = 127, s m gc ban u c min gi tr [-127, 128]
Min gi tr ny kh v l, vy ti sao chng ta khng chns K = 128 min gi tr gc l [-128, 127] nh bnh thng?
Cu hi 1 - p n10
S d Exponent c lu tr di dng Biased v ta mun chuyn t min gi tr s c du sang s khng du (v trong biased, s k c chn
sau khi cng s bt k trong min gi tr gc,kt qu l s lun dng)
D dng so snh, tnh ton
Cu hi 2 - p n11
S K c chn l 127 m khng phi l 128 v ti bc 2 trc khi biu din thnh s chm ng, chng ta cn phi chun ha thnh dng 1.F * 2E
Tc l chng ta s lun lun dnh 1 bit (s 1) pha trc du chm ch khng y sang tri ht
Vi 8 bit, s m gc ban u khng th t mc nh nht l -128 m ch l -127 Do vy ta ch cn chn K = 127 l c
Vy th12
Khi mun biu din s 0 th ta khng th tm ra bit tri nht c gi tr = 1 y du chm ng, vy lm sao chun ha v dng 1.F * 2E ?
Vi s dng 0.F * 2-127 th chun ha c na khng? Vi K = 127, exponent ln nht s l 255
S m gc ban u ln nht l 255 127 = +128 V l v vi 8 bit c du ta khng th biu din c s +128 ?
Tr li13
V l nhng s thc c bit, ta khng th biu din bng du chm ng
S thc c bit14
S 0 (zero)
Exponent = 0, Significand = 0
S khng th chun ha (denormalized)
Exponent = 0, Significand != 0
S v cng (infinity)
Exponent = 1111 (ton bit 1), Significand = 0
S bo li (NaN Not a Number)
Exponent = 1111 (ton bit 1), Significand != 0
Normalized number15
Largest positive normalized number: +1.[23 s 1] * 2127
S0
Exp-----------1111 1110
Significand (Fraction)--------------------------------------1111 1111 1111 1111 1111 111
Smallest positive normalized number: +1.[23 s 0] * 2-126S 0 Exp -----------0000 0001 Significand (Fraction) --------------------------------------0000 0000 0000 0000 0000 000
Tng t cho s negative (s m)
Denormalized number16
Largest positive denormalized number: +0.[23 s 1] * 2-127 S Exp Significand (Fraction) -------------------------------------------------0 0000 0000 1111 1111 1111 1111 1111 111 Tuy nhin IEEE 754 quy nh l +0.[23 s 1] * 2-126 v mun tin gn hn vi Smallest positive normalized number = +1.[23 s 0] * 2-126
Smallest positive denormalized number: +1.[22 s 0]1 * 2-127 S Exp Significand (Fraction) -------------------------------------------------0 0000 0000 0000 0000 0000 0000 0000 001 Tuy nhin IEEE 754 quy nh l +0.[22 s 0]1 * 2-126
Tng t cho s negative (s m)
V d: n = 4, m = 3, bias = 717
Phn b cc s thc (32 bits)18
Chun IEEE 75419
Bi tp 120
Biu din s thc sau theo dng s chm ng chnh xc n (32 bit): X = +12.625
Bc 1: i X sang h nh phnX = -12.62510 = -1100.1012
Bc 2: Chun ha theo dng 1.F * 2E X = -12.62510 = -1100.1012 = -1.100101 * 23
Bc 3: Biu din Floating Point
S dng: bit du Sign = 0 S m E = 3 Phn m exponent vi s tha K=127 c biu din: Exponent = E + 127 = 3 + 127 = 13010 = 1000 00102
Phn nh tr = 1001 0100 0000 0000 0000 000 (Thm 17 s 0 cho 23 bit)
Kt qu nhn c: 0 1000 0010 1001 0100 0000 0000 0000 000
Bi tp 221
Biu din s thc sau theo dng s chm ng chnh xc n (32 bit): X = -3050
Bc 1: i X sang h nh phnX = -305010 = -1011 1110 10102
Bc 2: Chun ha theo dng 1.F * 2E X = -305010 = - 1011 1110 10102 = -1.01111101010 * 211
Bc 3: Biu din Floating Point
S m: bit du Sign = 1 S m E = 11 Phn m exponent vi s tha K=127 c biu din: Exponent = E + 127 = 11 + 127 = 13810 = 1000 10102
Phn nh tr = 0111 1101 0100 0000 0000 000 (Thm 12 s 0 cho 23 bit)
Kt qu nhn c: 1 1000 1010 0111 1101 0100 0000 0000 000
Bi tp 322
Biu din s thc sau theo dng s chm ng chnh xc n (32 bit): X = +1.1 *
2-128
Lu :
S X: positive number X < Smallest positive normalized number: +1.[23 s 0] * 2-126 s X l s khng th chun ha (denormalized number) Chuyn X v dng: X = +0.011 * 2-126
Bc 3: Biu din Floating Point
S dng: bit du Sign = 0V y l s khng th chun ha Phn m exponent c biu din: 0000 00002 Phn nh tr = 0110 0000 0000 0000 0000 000
Kt qu nhn c: 0 0000 0000 0110 0000 0000 0000 0000 000
Homework23
Sch W.Stalling Computer Arithmetic, c chng 9 c file 04_FloatingPoint.doc Tr li cc cu hi:
Overflow, underflow? Cng tr nhn chia trn s thc? Quy tc lm trn?
NaN: nguyn tc pht sinh?Quiet NaN v Signaling NaN?