Top Banner
KIẾN TRÚC MÁY TÍNH & HỢP NGỮ 03 – Biểu diễn số thực 1
23

03_Bieu_dien_so_thuc

Sep 21, 2014

Download

Documents

Đức Lê
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript

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?