+ All Categories
Home > Documents > Bai03 So Cham Dong

Bai03 So Cham Dong

Date post: 04-Apr-2018
Category:
Upload: anna-bich
View: 219 times
Download: 0 times
Share this document with a friend

of 27

Transcript
  • 7/31/2019 Bai03 So Cham Dong

    1/27

    Bi 03: S chm ng

    Phm Tun Sn

    [email protected]

    mailto:[email protected]:[email protected]
  • 7/31/2019 Bai03 So Cham Dong

    2/27

    Vn vi biu din s nguyn

    S nguyn N bit biu din c 2N gi tr Biu din khng du (Unsigned Integer)

    0 2N 1

    (N=32, 2N1 = 4,294,967,295)

    Biu din b 2-2(N-1) 2(N-1) 1

    (N=32, 2(N-1) = 2,147,483,648)

    Biu din s rt ln ? S giy / 1 nghn nm

    31,556,926,000 (3.1556926 x 1010) Biu din s rt nh ? S giy / 1 nano giy

    0.00000000110 (1.010 x 10-9)

    Biu din s thp phn 1.5 ?2

  • 7/31/2019 Bai03 So Cham Dong

    3/27

    Biu din phn thp phn

    Biu din s 5.375 th no ?Cn bao nhiu bit ?

    Gi s dng 8 bit lu tr phnnguyn

    5 = 4 + 1 = 00000101 Tng t c th dng 8 bit lu tr

    phn thp phn0.375 = 0.25 + 0.125 = 01100000

    Vy c th biu din5.375 = 00000101.01100000

    Tng qut ta c:

    => Biu din s chm tnh (fixed point) 3

    0 1.0 1

    1 0.5 1/2

    2 0.25 1/4

    3 0.125 1/8

    4 0.0625 1/165 0.03125 1/32

    6 0.015625 ...

    7 0.0078125

    8 0.00390625

    9 0.001953125

    10 0.000976562511 0.00048828125

    12 0.000244140625

    13 0.0001220703125

    14 0.00006103515625

    15 0.000030517578125

    i 2-i

    1 1 0 1 2. 2

    n

    i

    n m i

    i m

    x x x x x x x =

    = K K

  • 7/31/2019 Bai03 So Cham Dong

    4/27

  • 7/31/2019 Bai03 So Cham Dong

    5/27

    S chm ng tng

    H thp phn 123000000000 ~ 1.231011 v 0.0000000000123 ~ 1.2310-11

    Tng t vi h nh phn, ta cx = 00000101.01100000 = 22 + 20 + 2-2 + 2-3

    Ta c th vit lix = 1.01011 22

    Thay v dng 16 bit lu tr, chcn dng 7 bit (5 bitphn tr + 2 bit phn m)

    x = 1.01011 10

    Nh vy, Mun tit kim s bit lu tr, ta di chuyn vtr ca du chm

    sang phi 14 v tr

    Cn lu: phn tr, phn m v phn du

    =>y l tng c bn ca s chm ng (floating point)5

  • 7/31/2019 Bai03 So Cham Dong

    6/27

    Biu din s chm ng

    Biu din s chm ng

    Sign (S): phn du

    Exponent (E): phn s m

    Significand (S): phn nh tr

    Gi tr S2E

    6

    S Exponent Significand

    1 bit m bits n bits

  • 7/31/2019 Bai03 So Cham Dong

    7/27

    Biu din khoa hc

    Gi tr 1 / 1,000,000,000 c th biu din nh sau: 1.010 10-9 Dng chun (Normalized form)

    0.110 10-8, 10.010 10-10 Dng khng chun(Denormalized form)

    Dng chun: phn nguyn gm 1 ch s khc 0

    7

    6.0210 x 1023

    radix (base)

    decimal point

    mantissa exponent1.02 x 2

    -1

    binary point

  • 7/31/2019 Bai03 So Cham Dong

    8/27

    Chun s chm ng IEEE 754

    Biu din s chm ng Single Precision (32 bit)

    S: du (Sign) 0: dng, 1: m

    Exponent: phn s m (lu di dng s biased)

    Significand: phn nh tr Ngm nh bt u l 1 + phn tr ~ (1 + 23) bits

    Dng chun: +/-1.xxxx22yyyy

    2 V d:

    Biu din: 0 10000001 01011000000000000000000

    C gi tr: +1.010110000210000001 ~ +(1+2-2 + 2-4 + 2-5) 22 =5.375

    8

    031S Exponent30 23 22

    Significand

    1 bit 8 bits 23 bits

  • 7/31/2019 Bai03 So Cham Dong

    9/27

    Chuyn t biu din nh phnsang thp phn

    9

    Du: 0 dng

    M: 0110 1000 c gi tr (dng biased) l

    104 - 127 = -23

    Tr:1 + 1x2-1+ 0x2-2 + 1x2-3 + 0x2-4 + 1x2-5 +...

    =1+2-1+2-3 +2-5 +2-7 +2-9 +2-14 +2-15 +2-17 +2-22= 1.0 + 0.666115

    Kt qu: 1.6661152-23 ~ 1.98610-7

    (~ 2/10,000,000)

    0 0110 1000 101 0101 0100 0011 0100 0010

  • 7/31/2019 Bai03 So Cham Dong

    10/27

    Chuyn t biu din thp phnsang nh phn

    -2.340625 x 101

    1. Khng chun ha: -23.40625

    2. Chuyn phn nguyn:

    23 = 16 + 4 + 2 + 1 = 101113. Chuyn phn thp phn:

    .40625 = .25 + .125 + .03125 = .01101

    4. Kt hp v chun ha:

    10111.01101 = 1.011101101 x 24

    5. Chuyn phn m: 127 + 4 = 10000011

    10

    1 1000 0011 011 1011 0100 0000 0000 0000

  • 7/31/2019 Bai03 So Cham Dong

    11/27

    Chuyn t biu din thp phnsang nh phn (tt)

    1/3= 0.33333

    = 0.25 + 0.0625 + 0.015625 + 0.00390625 +

    = 1/4 + 1/16 + 1/64 + 1/256 +

    = 2-2 + 2-4 + 2-6 + 2-8 + = 0.0101010101 * 20

    = 1.0101010101 * 2-2

    Du: 0

    M

    = -2 + 127 = 125 = 01111101 Tr = 0101010101

    11

    0 0111 1101 0101 0101 0101 0101 0101 010

  • 7/31/2019 Bai03 So Cham Dong

    12/27

    Cc sc bit

    Phn m = 0, phn tr = 0 S zero

    Phn m = 0, phn tr 0

    S dng khng chun (denormalized) Phn m ton bit 1, phn tr = 0

    S v cng (infinity)

    Phn m ton bit 1, phn tr 0 S bo li (NaN - Not a Number)

    Signaling NaN

    Quiet NaN12

  • 7/31/2019 Bai03 So Cham Dong

    13/27

  • 7/31/2019 Bai03 So Cham Dong

    14/27

    Phn b, phm vi biu din

    Phn b

    14

    Phm vi biu din. Chng minh ?

  • 7/31/2019 Bai03 So Cham Dong

    15/27

    Phn b

    t f(1,2) = s lng s chm ng trongkhong 1 v 2

    t f(2,3) = s lng s chm ng trongkhong 2 v 3

    Hi1. f(1,2) < f(2,3)

    2. f(1,2) = f(2,3)

    3. f(1,2) > f(2,3)

    15

  • 7/31/2019 Bai03 So Cham Dong

    16/27

    S dng khng chun

    S dng nh nht c th biu dina = 1.0 2 2-126 = 2-126

    L do: ngm nh 1 + phn tr

    Gii php: Qui c nu s m = 0 (phn tr 0), khng ngm nh

    bt u l 1 S dng khng chun (denormalized) S dng nh nht c th biu din

    a = 0.0012 2-126 = 2-23 2-126 = 2-149

    16

    a0 +-

    Gaps!

    0

    +-

  • 7/31/2019 Bai03 So Cham Dong

    17/27

    Mt s loi chm ng

    Single Precision (32 bit) 1/8/23 (kiu floattrong C), 10-38 1038

    Double Precision (64 bit) 1/11/52 (kiu doubletrong C), 10-308 10308

    Half Precision (16 bit) 1/5/10

    Quad Precision (8 bit)

    1/4/3 IEEE 754-2008 binary128 (128 bit)

    1/15/112

    17

    en.wikipedia.org/wiki/Floating_point

  • 7/31/2019 Bai03 So Cham Dong

    18/27

    Biu din s chm ng 8 bit

    18

  • 7/31/2019 Bai03 So Cham Dong

    19/27

    Single Precision (32 bit) Double Precision (64 bit)Du M Tr Gi t r Du M Tr Gi t r

    +0 0 0 0 0 0 0 0 0

    0 1 0 0 -0 1 0 0 -0

    + 0 255 (ton bit 1) 0 0 2047 (ton bit 1) 0

    1 255 (ton bit 1) 0 - 1 2047 (ton bit 1) 0 -

    Quiet NaN 0/ 1 255 (ton bit 1) 0 NaN 0/ 1 2047 (ton bit 1) 0 NaN

    Signaling NaN 0/ 1 255 (ton bit 1) 0 NaN 0/ 1 2047 (ton bit 1) 0 NaN

    Sdng(dng chun)

    0 0

  • 7/31/2019 Bai03 So Cham Dong

    20/27

    Khi nim Precision v Accuracy

    Precision: s bit c s dng trong my tnh biu din 1 gi tr.

    Accuracy: chnh xc m mt kiu biu dintrong my tnh c th biu din c mt gi tr.

    Thng th precision cao s dn ti accuracycao.

    V d: float pi = 3.14;

    pi c biu din bi 24 bit phn tr (precise cao),nhng chc th biu din c gn ng pi (khngaccuracy).

    20

  • 7/31/2019 Bai03 So Cham Dong

    21/27

    Lm trn (Rounding)

    Khi thc hin cc php ton trn s chm ng, kt qunhn c c th vt ra ngoi kh nng biu din caphn nh tr.

    Phn cng phc v cc php ton trn s chm ng

    thng c thm 2 bit nhh trcho phn nh tr gipthc hin vic lm trn c c kt qu chnh xcnht c th.

    V d: thc hin (1.000021) (1.111120)

    21

    1.00.00 21

    - 0.111.1 21 (= 1.11.1120)0.000..01 21

    =1.0000 2-22

    1.00.00 00 21

    - 0.111.1 10 21 (= 1.11.1120)0.000..00 10 21

    =1.0000 00 2-23

  • 7/31/2019 Bai03 So Cham Dong

    22/27

    Chun IEEE lm trns chm ng

    Lm trn ln (Round up / Round towards +)1.01 10 1.10 , -1.01 10 -1.01

    Lm trn xung (Round down / Round towards )1.01 10 1.01, -1.01 10 -1.10

    Lm trn v 0 (Truncate / Round towards 0) B gi tr 2 bit nh

    Lm trn v gi tr gn nht (Round to nearest): 1.01 01 1.01 , -1.01 11 -1.10

    Trng hp 2 bit nh l 10 (halfway) ? Lm trn v s chn gn nht (mc nh), ngha l LSB ca phnnh tr lun bng 01.01 10 1.10 , -1.10 11 -1.10

    22

  • 7/31/2019 Bai03 So Cham Dong

    23/27

    Cc trng hp lm trn khc

    Lm trn cng c thc hin khi thc hin chuyn i: Chuyn i t kiu double precision thnh single precision

    Chuyn i t s chm ng thnh s nguyn v ngc li

    p kiu t s chm ng thnh s nguyn v ngc li

    Hy kho st cc trng hp sau:

    23

    1.Chuyn i float -> int -> float.Kt qu nh ban u ?2.Chuyn i int -> float -> int. Kt qu nh ban u ?3.Php cng s chm ng c tnh kt hp ?

    (x+y)+z = x+(y+z)

    4.i = (int) (3.14159 * f);

    5.f = f + (float) i;

    6.if (i == (int)((float) i)) { printf(true); }

    7.if (i == (int)((double) i)) { printf(true); }

    8.if (f == (float)((int) f)) { printf(true); }

    9.if (f == (double)((int) f)) { printf(true); }

  • 7/31/2019 Bai03 So Cham Dong

    24/27

    Php cng, tr s chm ng

    24

  • 7/31/2019 Bai03 So Cham Dong

    25/27

    Php nhn s chm ng

    25

  • 7/31/2019 Bai03 So Cham Dong

    26/27

    Php chia s chm ng

    26

  • 7/31/2019 Bai03 So Cham Dong

    27/27

    Tham kho

    Chng 3, P&H Chng 9, William Stallings

    27


Recommended