chuong2_bieudiendulieu&sohocmaytinh.pdf

106
1 Cấu trúc máy tính Chương 2 BIỂU DIỄN DỮ LIỆU & SỐ HỌC MÁY TÍNH

Upload: hoang-thanh-nguyen

Post on 02-Oct-2015

224 views

Category:

Documents


5 download

TRANSCRIPT

  • 1

    Cu trc my tnh

    Chng 2

    BIU DIN D LIU

    & S HC MY TNH

  • 2

    Ni dung chng 2

    2.1. C|c h m c bn

    2.2. M~ ha v{ lu tr d liu trong m|y tnh

    2.3. Biu din s nguyn

    2.4. C|c php to|n s hc vi s nguyn

    2.5. Biu din s thc

    2.6. Biu din k t

  • 3

    Cc h m c bn

    V mt to|n hc, ta c th biu din s theo h m c s bt k.

    Khi nghin cu v m|y tnh, ta ch quan t}m n c|c h m sau }y: H thp ph}n (Decimal System) con ngi s dng

    H nh ph}n (Binary System) m|y tnh s dng

    H mi s|u (Hexadecimal System) dng vit gn cho s nh ph}n

  • 4

    H thp phn

    n

    mi

    i

    i

    m

    m

    n

    n

    n

    n

    aA

    aaaaaaA

    10

    10...101010...1010 110

    0

    1

    1

    1

    1

    S dng 10 ch s: 0,1,2,3,4,5,6,7,8,9 biu din s

    Dng n ch s thp ph}n c th biu din c 10n gi| tr nguyn khc nhau:

    00...000 = 0

    ....

    99...999 = 10n-1

    Gi s mt s A c biu din di dng: A = an an-1 a1 a0 . a-1 a-2 a-m

    Gi| tr ca A c hiu nh sau:

  • 5

    V d

    S thp ph}n 472.38 c gi| tr c hiu nh sau: 472.38 = 4 x 102 + 7 x 101 + 2 x 100 + 3 x 10-1 + 8 x 10-2

  • 6

    M rng cho h c s r (r>1)

    S dng r ch s c gi| tr ring t 0 n r-1 biu din s

    Gi s c s A c biu din bng c|c ch s ca h m theo c s r nh sau: A = an an-1 a1 a0 . a-1 a-2 a-m

    Gi| tr ca A l{:

    Mt chui n ch s ca h m c s r s biu din c rn gi tr nguyn khc nhau.

    n

    mi

    i

    i

    m

    m

    n

    n

    n

    n

    raA

    rararararararaA ...... 221

    1

    0

    0

    1

    1

    1

    1

  • 7

    H nh phn

    S dng 2 ch s: 0,1

    Ch s nh ph}n gi l{ bit (binary digit)

    Bit l{ n v thng tin nh nht

    Dng n bit c th biu din c 2n gi| tr kh|c nhau: 00...000 = 0

    ...

    11...111 = 2n-1

    Gi s c s A c biu din theo h nh ph}n nh sau: A = an an-1 a1 a0 . a-1 a-2 a-m

    Vi ai l{ c|c ch s nh ph}n, khi gi| tr ca A l{:

    n

    mi

    i

    i

    m

    m

    n

    n

    n

    n

    aA

    aaaaaaaA

    2

    2...2222...22 221

    1

    0

    0

    1

    1

    1

    1

  • 8

    V d

    S nh ph}n 1101001.1011 c gi| tr c x|c nh nh sau: 1101001.1011(2) = 2

    6 + 25 + 23 + 20 + 2-1 + 2-3 + 2-4

    = 64 + 32 + 8 + 1 + 0.5 + 0.125 + 0.0625 = 105.6875(10)

  • 9

    i s thp phn sang nh phn

    Thc hin chuyn i phn nguyn v{ phn l ring.

    Chuyn i phn nguyn: Cch 1: chia dn s cho 2, x|c nh c|c phn d, ri vit c|c s d

    theo chiu ngc li.

    V d: chuyn i 105(10) sang h nh ph}n ta l{m nh sau:

    105 : 2 = 52 d 1

    52 : 2 = 26 d 0

    26 : 2 = 13 d 0

    13 : 2 = 6 d 1

    6 : 2 = 3 d 0

    3 : 2 = 1 d 1

    1 : 2 = 0 d 1

    Nh vy, ta c: 105(10) = 1101001(2)

  • 10

    i s thp phn sang nh phn

    Chuyn i phn nguyn (tip): Cch 2: ph}n tch s th{nh tng c|c ly tha ca 2, sau da v{o

    c|c s m x|c nh dng biu din nh ph}n.

    V d: 105 = 64 + 32 + 8 + 1 = 26 + 25 + 23 + 20

    105(10) = 1101001(2)

    Chuyn i phn l: Nh}n phn l vi 2 ri ly phn nguyn ... Sau vit c|c phn nguyn

    theo chiu thun.

    V d: chuyn i s 0.6875(10) sang h nh ph}n:

    0.6875 x 2 = 1.3750 phn nguyn = 1

    0.375 x 2 = 0.750 phn nguyn = 0

    0.75 x 2 = 1.50 phn nguyn = 1

    0.5 x 2 = 1.0 phn nguyn = 1

    Kt qu l{: 0.6875(10) = 0.1011(2)

  • 11

    3. H mi su (Hexa)

    S dng 16 ch s, k hiu nh sau:

    0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F

    Dng vit gn cho s nh phn.

  • 12

    Mt s v d

    Nh ph}n Hexa: 11 1011 1110 0110.01101(2) = 3BE6.68(16) Hexa Nh ph}n: 3E8(16) = 11 1110 1000(2) Thp ph}n Hexa: 14988 ?

    14988 : 16 = 936 d 12 tc l{ C

    936 : 16 = 58 d 8

    58 : 16 = 3 d 10 tc l{ A

    3 : 16 = 0 d 3

    Nh vy, ta c: 14988(10) = 3A8C(16)

    Hexa Thp ph}n: 3A8C ? 3A8C (16) = 3 x 16

    3 + 10 x 162 + 8 x 161 +12 x 160

    = 12288 + 2560 + 128 + 12 = 14988(10)

  • Chuyn i nhanh

    105 = 6x16 + 9 = 69(16)= 110 1001

    35 = 2x16 + 3 = 23(16) = 10 0011

    13

  • 14

    Cng tr s Hexa

    8A9B

    37CD

    C268

    +B46E

    1AC9

    99A5

    -B7E5

    2AF9+

    FA9D

    2BC5-

    B800

    0FFF+

    8E9A

    3FE2-

    1234

    ABCD+

    4B6D

    3FEA-

    CFFF

    1FFF+

    A78D

    45FB-

    879D

    5DF8+

    98BA

    8A9D-

    E2DE CED8

  • 15

    Ni dung chng 2

    2.1. C|c h m c bn

    2.2. M~ ha v{ lu tr d liu trong m|y tnh

    2.3. Biu din s nguyn

    2.4. C|c php to|n s hc vi s nguyn

    2.5. Biu din s thc

    2.6. Biu din k t

  • 16

    M ha v lu tr d liu

    1. Nguyn tc chung v m~ ha d liu

    2. Lu tr thng tin trong b nh chnh

  • 17

    1. Nguyn tc chung v m ha d liu

    Mi d liu a v{o m|y tnh u phi c m~ ha th{nh s nh ph}n.

    C|c loi d liu : D liu nh}n to: do con ngi quy c

    D liu t nhin: tn ti kh|ch quan vi con ngi

  • 18

    Nguyn tc m ha d liu

    M~ ha d liu nh}n to: D liu s nguyn: m~ ha theo chun qui c

    D liu s thc: m~ ha bng s du chm ng

    D liu k t: m~ ha theo b m~ k t

  • 19

    Nguyn tc m ha d liu (tip)

    M~ ha d liu t nhin: Ph bin l{ c|c tn hiu vt l nh }m thanh, hnh nh, ...

    C|c d liu t nhin cn phi c s ha (digitalized) trc khi a vo trong my tnh.

    S m~ ha v{ t|i to tn hiu vt l:

  • 20

    di t d liu

    d{i t d liu: L{ s bit c s dng m~ ha loi d liu tng ng

    Trong thc t, d{i t d liu thng l{ bi s ca 8 bit, v d: 8, 16, 32, 64 bit

    1GB = 210 MB = 220 KB = 230 Byte

    4GB = 232 Byte

  • 21

    2. Lu tr thng tin trong b nh chnh

    B nh chnh thng c t chc theo Byte

    d{i t d liu c th chim 1 hoc nhiu Byte

    Cn phi bit th t lu tr c|c byte trong b nh chnh: Lu tr kiu u nh (Little-endian)

    Lu tr kiu u to (Big-endian)

    Little-endian: Byte c ngha thp hn c lu tr trong b nh v tr c a ch nh hn.

    Big-endian: Byte c ngha thp hn c lu tr trong b nh v tr c a ch ln hn.

  • 22

    V d

    Intel 80x86, Pentium: Little-endian

    Motorola 680x0, c|c b x l RISC: Big-endian

    Power PC, Itanium: h tr c hai (Bi-endian)

  • 23

    Bi tp

    D liu 16 bit c gi| tr l{ 5B9D c lu tr v{o b nh chnh t chc theo kiu Little-endian bt u t byte nh c a ch l{ 1234. H~y x|c nh ni dung c|c byte nh cha lu tr d liu di dng nh ph}n.

  • 24

    Ni dung chng 2

    2.1. C|c h m c bn

    2.2. M~ ha v{ lu tr d liu trong m|y tnh

    2.3. Biu din s nguyn

    2.4. C|c php to|n s hc vi s nguyn

    2.5. Biu din s thc

    2.6. Biu din k t

  • 25

    Biu din s nguyn

    1. S nguyn khng du

    2. S nguyn c du

    3. Biu din s nguyn theo m~ BCD

  • 26

    1. S nguyn khng du

    Dng tng qu|t: gi s dng n bit biu din cho mt s nguyn khng du A:

    an-1an-2...a3a2a1a0 Gi| tr ca A c tnh nh sau:

    Di biu din ca A: t 0 n 2n-1

    1

    0

    0

    0

    1

    1

    2

    2

    1

    1

    2

    22...22

    n

    i

    i

    i

    n

    n

    n

    n

    aA

    aaaaA

  • 27

    Cc v d

    V d 1. Biu din c|c s nguyn khng du sau }y bng 8 bit:

    A = 45 B = 156

    Gii:

    A = 45 = 32 + 8 + 4 + 1 = 25 + 23 + 22 + 20

    A = 0010 1101

    B = 156 = 128 + 16 + 8 + 4 = 27 + 24 + 23 + 22

    B = 1001 1100

  • 28

    Cc v d (tip)

    V d 2. Cho c|c s nguyn khng du X, Y c biu din bng 8 bit nh sau:

    X = 0010 1011

    Y = 1001 0110

    Gii:

    X = 0010 1011 = 25 + 23 + 21 + 20

    = 32 + 8 + 2 + 1 = 43

    Y = 1001 0110 = 27 + 24 + 22 + 21

    = 128 + 16 + 4 + 2 = 150

  • 29

    Trng hp c th: vi n = 8 bit

    Di biu din l{ [0, 255]

    0000 0000 = 0 0000 0001 = 1

    0000 0010 = 2

    0000 0011 = 3

    .....

    1111 1111 = 255

    Trc s hc:

    0 12

    3

    255254

    Trc s hc my tnh:

    0 1 2 255

  • 30

    Vi n = 8 bit

    Kiu d liu tng ng trong Turbo C l{ kiu unsigned char.

    V d: unsigned char a;

    a = 255;

    a = a + 1;

    printf(%d,a); //Kt qu sai l{ 0

    1111 1111

    + 0000 0001

    1 0000 0000

    KQ sai: 255 + 1 = 0 ?

    (do php cng b nh ra ngoi)

  • 31

    Vi n = 16 bit, 32 bit, 64 bit

    n = 16 bit: Di biu din l{ [0, 65535]

    Kiu d liu tng ng trong Turbo C l{ kiu unsigned int

    V d:

    unsigned int a;

    a = 0xffff;

    a = a + 1;

    printf(%d,a);

    n = 32 bit: Di biu din l{ [0, 232-1]

    n = 64 bit: Di biu din l{ [0, 264-1]

  • 32

    2. S nguyn c du

    a. Khi nim v s b

    S b chn v{ s b mi (h thp ph}n): Gi s c mt s nguyn thp ph}n A c biu din bi n ch s thp ph}n. Khi ta c: S b chn ca A = (10n - 1) - A

    S b mi ca A = 10n - A

    NX: S b mi = S b chn + 1

    V d: Xt n = 4 ch s, A = 2874

    S b chn ca A = (104 - 1) - 2874 = 7125

    S b mi ca A = 104 - 2874 = 7126

  • 33

    Khi nim v s b

    S b mt v{ s b hai (h nh ph}n): Gi s c mt s nguyn nh ph}n A c biu din bi n bit. Khi ta c: S b mt ca A = (2n - 1) - A

    S b hai ca A = 2n - A

    NX: S b hai = S b mt + 1

    V d: Xt n = 4 bit, A = 0110

    S b mt ca A = (24 - 1) - 0110 = 1001

    S b hai ca A = 24 - 0110 = 1010

  • 34

    Nhn xt

    C th tm s b mt ca A bng c|ch o tt c c|c bit ca A

    S b hai ca A = S b mt ca A + 1

  • 35

    Nhn xt

    V d:

    cho A =0110 0101

    S b mt ca A =1001 1010

    + 1

    S b hai ca A =1001 1011

    Nhn xt

    A = 0110 0101

    S b hai ca A += 1001 1011

    1 0000 0000 = 0 (b qua bit nh ra ngo{i)

    ->S b hai ca A=-A

  • 36

    Biu din s nguyn c du

    b. Biu din s nguyn c du bng s b hai

    Dng n bit biu din s nguyn c du A:

    an-1an-2...a2a1a0 Vi s dng:

    Bit an-1 = 0

    C|c bit cn li biu din ln ca s dng

    Dng tng qu|t ca s dng: 0an-2...a2a1a0 Gi| tr ca s dng:

    Di biu din ca s dng: [0, 2n-1-1]

    2

    0

    2n

    i

    i

    iaA

  • 37

    Biu din s nguyn c du (tip)

    Vi s }m: c biu din bng s b hai ca s dng tng ng

    Bit an-1 = 1

    Dng tng qu|t ca s }m: 1an-2...a2a1a0 Gi| tr ca s }m:

    Di biu din ca s }m: [-2n-1, -1]

    Di biu din ca s nguyn c du n bit l{ [-2n-1, 2n-1-1]

    2

    0

    1 22n

    i

    i

    i

    n aA

  • 38

    Biu din s nguyn c du (tip)

    Dng tng qu|t ca s nguyn c du A:

    an-1an-2...a2a1a0

    Gi| tr ca A c x|c nh nh sau:

    Di biu din: [-2n-1, 2n-1-1]

    2

    0

    1

    1 22n

    i

    i

    i

    n

    n aaA

  • 39

    Cc v d

    V d 1. Biu din c|c s nguyn c du sau }y bng 8 bit A = +50 B = -70 Gii: A = +50 = 32 + 16 + 2 = 25 + 24 + 21

    A = 0011 0010

    B = -70 Ta c: +70 = 64 + 4 + 2 = 26 + 22 + 21

    +70 = 0100 0110 S b 1 = 1011 1001 + 1 S b 2 = 1011 1010 B = 1011 1010

  • 40

    Cc v d (tip)

    V d 2. X|c nh gi| tr ca c|c s nguyn c du 8 bit sau }y:

    A = 0101 0110

    B = 1101 0010

    Gii:

    A = 26 + 24 + 22 + 21 = 64 + 16 + 4 + 2 = +86

    B = -27 + 26 + 24 + 21 = -128 + 64 + 16 + 2 = -46

  • 41

    Trng hp c th: vi n = 8 bit

    Di biu din l{ [-128, +127]

    0000 0000 = 0 0000 0001 = +1

    0000 0010 = +2

    ..

    0111 1111 = +127

    1000 0000 = -128

    1000 0001 = -127

    .....

    1111 1110 = -2

    1111 1111 = -1

    Trc s hc:

    Trc s hc my tnh:

    0-2 -1 127-128 1 2

    0 +1+2

    +127

    -1-2

    -128

  • 42

    Vi n = 8 bit (tip)

    Kiu d liu tng ng trong Turbo C l{ kiu char.

    V d: char a;

    a = 127;

    a = a + 1;

    printf(%d,a); //Kt qu sai l{ -128

    0111 1111

    + 0000 0001

    1000 0000

    KQ sai: 127 + 1 = -128 ?

    (do php cng b trn s hc)

  • 43

    Vi n = 16 bit, 32 bit, 64 bit

    n = 16 bit: Di biu din l{ [-32768, +32767]

    Kiu d liu tng ng trong Turbo C l{ kiu int

    n = 32 bit: Di biu din l{ [-231, 231-1]

    Kiu d liu tng ng trong Turbo C l{ kiu long int

    n = 64 bit: Di biu din l{ [-263, 263-1]

  • 44

    Chuyn t 8 bit sang 16 bit

    Vi s dng:

    +35 = 0010 0011 (8 bit)

    +35 = 0000 0000 0010 0011 (16 bit)

    Thm 8 bit 0 vo bn tri

    Vi s }m:

    -79 = 1011 0001 (8 bit)

    -79 = 1111 1111 1011 0001 (16 bit)

    Thm 8 bit 1 vo bn tri

    Kt lun: m rng sang bn tr|i 8 bit bng bit du

  • 45

    3. Biu din s nguyn theo m BCD

    BCD Binary Coded Decimal (M~ ha s nguyn thp ph}n bng nh ph}n)

    Dng 4 bit m~ ha cho c|c ch s thp ph}n t 0 n 9 0 0000 5 0101

    1 0001 6 0110

    2 0010 7 0111

    3 0011 8 1000

    4 0100 9 1001

    C 6 t hp khng s dng: 1010, 1011, 1100, 1101, 1110, 1111

  • 46

    V d v s BCD

    35 0011 0101BCD 79 0111 1001BCD 2281 0010 0010 1000 0001BCD 1304 0001 0011 0000 0100BCD

  • 47

    Php cng s BCD

    35 0011 0101BCD + 24 + 0010 0100BCD 59 0101 1001BCD Kt qu ng (khng phi hiu chnh) 89 1000 1001BCD + 52 + 0101 0010BCD 141 1101 1011 kt qu sai + 0110 0110 hiu chnh 0001 0100 0001BCD kt qu ng 1 4 1 Hiu chnh: cng thm 6 nhng h{ng c nh

  • 48

    Cc kiu lu tr s BCD

    BCD dng nn (Packed BCD): Hai s BCD c lu tr trong 1 Byte. V d s 52 c lu tr nh sau:

    BCD dng khng nn (Unpacked BCD): Mi s BCD c lu tr trong 4 bit thp ca mi Byte. V d s 52 c lu tr nh sau:

    0101 0010

    0101 0010

  • 49

    Ni dung chng 2

    2.1. C|c h m c bn

    2.2. M~ ha v{ lu tr d liu trong m|y tnh

    2.3. Biu din s nguyn

    2.4. C|c php to|n s hc vi s nguyn

    2.5. Biu din s thc

    2.6. Biu din k t

  • 50

    Cc php ton s hc vi s nguyn

    1. B cng

    2. Cng s nguyn khng du

    3. Cng/tr s nguyn c du

    4. Nh}n s nguyn

    5. Chia s nguyn

  • 51

    1. B cng

    B cng 1 bit to{n phn (Full Adder)

  • 52

    B cng (tip)

    B cng n bit

  • 53

    2. Cng s nguyn khng du

    Nguyn tc: S dng b cng n bit cng 2 s nguyn khng du n bit, kt qu nhn c cng l{ n bit.

    Nu khng c nh ra khi bit cao nht (Cout=0) th kt qu nhn c l{ ng.

    Nu c nh ra khi bit cao nht (Cout=1) th kt qu nhn c l{ sai, khi ~ xy ra hin tng nh ra ngo{i.

    Hin tng nh ra ngoi (Carry-out) xy ra khi tng ca 2 s nguyn khng du n bit > 2n-1

  • 54

    VD cng s nguyn khng du 8 bit

    Trng hp khng xy ra carry-out: X = 1001 0110 = 150

    Y = 0001 0011 = 19

    S = 1010 1001 = 169

    Cout = 0

    Trng hp c xy ra carry-out: X = 1100 0101 = 197

    Y = 0100 0110 = 70

    S = 0000 1011 267

    Cout = 1 carry-out

    (KQ sai = 23 + 21 + 20 = 11)

    unsigned char x, y, s;

    x = 197;

    y = 70;

    s = x + y;

    printf(%d,s);

  • 55

    3. Cng/tr s nguyn c du

    Khi cng hai s nguyn c du n bit, ta khng quan t}m n bit Cout v{ kt qu nhn c cng l{ n bit. Cng hai s kh|c du: kt qu lun ng

    Cng hai s cng du: Nu tng nhn c cng du vi 2 s hng th kt qu l{ ng

    Nu tng nhn c kh|c du vi 2 s hng th ~ xy ra hin tng trn s hc (Overflow) v{ kt qu nhn c l{ sai

    Tr{n s hc xy ra khi tng thc s ca hai s nm ngo{i di biu din ca s nguyn c du n bit: [-2n-1, 2n-1-1]

  • 56

    Php tr s nguyn c du

    Nguyn tc thc hin php tr: Ta c: X Y = X + (-Y)

    C|ch thc hin: ly X cng vi s b 2 ca Y

    B cng n bit

    Y X

    S

    B 2

    n-bit n-bit

    n-bit

  • 57

    V d cng 2 s nguyn c du (khng trn)

  • 58

    V d cng 2 s nguyn c du (Overflow)

  • 59

    4. Nhn s nguyn

    a. Nh}n s nguyn khng du

    b. Nh}n s nguyn c du

  • 60

    a. Nhn s nguyn khng du

    C|c tch ring phn c x|c nh nh sau: Nu bit ca s nh}n = 0 tch ring phn = 0

    Nu bit ca s nh}n = 1 tch ring phn = s b nh}n

    Tch ring phn tip theo c dch tr|i 1 bit so vi tch ring phn trc

    Tch = tng c|c tch ring phn

    Nh}n 2 s nguyn n bit, tch c d{i 2n bit khng tr{n

  • 61

    B nhn s nguyn khng du

    Mn-1 ... M1 M0

    B cng n bit

    An-1 ... A1 A0 Qn-1 ... Q1 Q0C

    B iu khin dch v cng

    iu khin cng

    iu khin dch phi

    S b nhn M

    S nhn Q

  • 62

    Lu thc hin

    Bt u

    C, A 0

    M S b nhnQ S nhnB m n

    Q0 = 1 ? C, A A M

    Dch phi C, A, QB m B m - 1

    B m = 0 ? Kt thc

    S

    S

  • 63

    V d nhn s nguyn khng du

    M = 1011 (11 - S b nhn) Q = 1101 (13 - S nhn) = 1000 1111 (143 - Tch)

    C A Q 0 0000 1101 Cc gi tr khi u + 1011

    0 1011 1101 A A + M 0 0101 1110 Dch phi

    0 0010 1111 Dch phi + 1011

    0 1101 1111 A A + M 0 0110 1111 Dch phi + 1011

    1 0001 1111 A A + M 0 1000 1111 Dch phi

  • 64

    b. Nhn s nguyn c du

    S dng thut gii nh}n khng du: Bc 1: Chuyn i s nh}n v{ s b nh}n th{nh s dng tng ng.

    Bc 2: Nhn 2 s bng thut gii nh}n s nguyn khng du c tch 2 s dng.

    Bc 3: Hiu chnh du ca tch: Nu 2 tha s ban u cng du th tch nhn c bc 2 l{ kt qu cn tnh.

    Nu 2 tha s ban u kh|c du nhau th kt qu l{ s b 2 ca tch nhn c bc 2.

  • 65

    Nhn s nguyn c du

    S dng thut gii Booth: Vi s nh}n dng:

    Ta c: 2i + 2i-1 + + 2j = 2i+1 - 2j (vi ij)

    VD: M * 01110010 = M * (27 24 + 22 21)

    Quy tc: duyt t tr|i sang phi:

    Nu gp 10 th tr A i M ri dch phi

    Nu gp 01 th cng A vi M ri dch phi

    Nu gp 00 hay 11 th ch dch phi

    Vi s nh}n }m: Ta c: 1110ak-1ak-2a0 = -2

    n-1 + 2n-2 + + 2k+1 + ak-12k-1 + + a02

    0

    = -2n-1 + 2n-1 - 2k+1 + ak-12k-1 + + a02

    0

    -2k+1 ng vi bit 10 nn vn m bo quy tc TH trn

  • 66

    Lu thc hin thut ton Booth

    Bt u

    A 0

    Q-1 0

    M S b nhnQ S nhnB m n

    Q0Q-1

    A A M

    Dch phi A, Q, Q-1(Gi nguyn bit du ca A)

    B m B m - 1

    B m = 0 ? Kt thc

    = 01

    S

    A A M

    = 10

    = 00 / 11

    A Q Q-1

  • 67

    V d v thut ton Booth

    V d 1:

    n = 4 bit, M = +7, Q = +3

    M = 0111, Q = 0011, -M = 1001

    A Q Q-1

    0000 0011 0 ; khi to

    +1001

    1001 0011 0 ; A A - M

    1100 1001 1 ; dch phi

    1110 0100 1 ; dch phi

    +0111

    10101 0100 1 ; A A + M

    0010 1010 0 ; dch phi

    0001 0101 0 ; dch phi

    V d 2:

    n = 4 bit, M = +7, Q = -3

    M = 0111, Q = 1101, -M = 1001

    A Q Q-1

    0000 1101 0 ; khi to

    +1001

    1001 1101 0 ; A A - M

    1100 1110 1 ; dch phi

    +0111

    10011 1110 1 ; A A + M

    0001 1111 0 ; dch phi

    +1001

    1010 1111 0 ; A A - M

    1101 0111 1 ; dch phi

    1110 1011 1 ; dch phi

  • 68

    5. Chia s nguyn

    a. Chia s nguyn khng du

    b. Chia s nguyn c du

  • 69

    a. Chia s nguyn khng du

    V d:

  • 70

    B chia s nguyn khng du

    Mn-1 ... M1 M0

    B cng/tr n bit

    An-1 ... A1 A0 Qn-1 ... Q1 Q0

    B logic iu khincng, tr v dch

    iu khin cng/tr

    iu khin dch tri

    S chia M

    S b chia Q

  • 71

    Lu thc hin

    Bt u

    A 0

    M S chiaQ S b chia

    B m 0

    A < 0 ?

    Q0 0

    A A M

    Dch tri A, Q

    B m = 0 ? Kt thc

    S

    A A M

    Q0 1

    B m B m - 1

    S

  • 72

    b. Chia s nguyn c du

    Bc 1: Chuyn i s chia v{ s b chia th{nh s dng tng ng

    Bc 2: S dng thut gii chia s nguyn khng du chia 2 s dng, kt qu nhn c l{ thng Q v{ phn d R u dng

    Bc 3: Hiu chnh du kt qu theo quy tc sau:

  • 73

    Ni dung chng 2

    2.1. C|c h m c bn

    2.2. M~ ha v{ lu tr d liu trong m|y tnh

    2.3. Biu din s nguyn

    2.4. C|c php to|n s hc vi s nguyn

    2.5. Biu din s thc

    2.6. Biu din k t

  • 74

    Biu din s thc

    1. Kh|i nim v s du chm tnh

    2. Kh|i nim v s du chm ng

    3. Chun IEEE 754/85

  • 75

    Biu din s thc

    Quy c: "du chm" (point) c hiu l{ k hiu ngn c|ch gia phn nguyn v{ phn l ca 1 s thc.

    C 2 c|ch biu din s thc trong m|y tnh: So dau cham tinh (fixed-point number):

    Du chm l{ c nh (s bit d{nh cho phn nguyn v{ phn l l{ c nh)

    Dung trong cac bo vi x ly hay vi ieu khien th h cu.

    So dau cham o ng (floating-point number): Du chm khng c nh

    Dung trong cac bo vi x ly hie n nay, co o chinh xac cao hn.

  • 76

    1. Khi nim v s du chm tnh

    S bit d{nh cho phn nguyn v{ s bit phn l l{ c nh.

    Gi s rng: U(a,b) la ta p cac so dau cham tinh khng du co a bit trc dau cham va b bit sau dau cham.

    A(a,b) la ta p cac so dau cham tinh c du co a bit (khng ke bit dau) trc dau cham va b bit sau dau cham.

  • 77

    S du chm tnh khng du

    Khong x|c nh ca s du chm tnh khng du: [0, 2a - 2-b]

    V d: Dng 8 bit m~ ha cho kiu s du chm tnh, trong c 2 bit d{nh cho phn l. Khong x|c nh ca kiu d liu ny l: 0 R 26 2-2 = 63.75

    VD: gi| tr ca 101011.11 = 10101111 x 2-2 = 43.75

  • 78

    S du chm tnh c du

    Khong x|c nh ca s du chm tnh c du: [-2a, 2a - 2-b]

    V d: Dung 8 bit e bieu dien so cham tinh co dau vi a=5, b=2

    Ta c ta p cac so chm tinh thuo c A(5,2) nam trong khoang: [-25, 25 2-2] hay [-32, 31.75]

  • 79

    c im ca s du chm tnh

    C|c php to|n thc hin nhanh.

    chnh x|c khi thc hin c|c php to|n khng cao, a c bie t la vi phep tinh nhn.

    V d: Khi thc hin php nh}n ta cn phi c thm mt s lng bit nht nh biu din kt qu.

    oi vi so khng dau: U(a1, b1) x U(a2, b2) = U(a1 + a2, b1 + b2)

    oi vi so co dau: A(a1, b1) x A(a2, b2) = A(a1 + a2 + 1, b1 + b2)

  • 80

    2. Khi nim v s du chm ng

    Floating Point Number biu din cho s thc

    Mt s thc X c biu din theo kiu s du chm ng nh sau:

    X = M * RE

    Trong : M l{ phn nh tr (Mantissa)

    R l{ c s (Radix)

    E l{ phn m (Exponent)

    Vi R c nh th lu tr X ta ch cn lu tr M v{ E (di dng s nguyn)

  • 81

    3. Chun IEEE 754/85

    L{ chun m~ ha s du chm ng

    C s R = 2

    C c|c dng c bn:

    Dng c chnh x|c n, 32-bit

    Dng c chnh x|c kp, 64-bit

    Dng c chnh x|c kp m rng, 80-bit

    Khun dng m~ ha:

    S me

    79 63 078 64

    S me

    31 22 030 23

    S me

    63 51 062 52

  • 82

    Khun dng m ha

    S l{ bit du, S=0 l{ s dng, S=1 l{ s }m.

    e l{ m~ lch (excess) ca phn m E, tc l{: E = e b

    Trong b l{ lch (bias): Dng 32-bit : b = 127, hay E = e - 127

    Dng 64-bit : b = 1023, hay E = e - 1023

    Dng 80-bit : b = 16383, hay E = e - 16383

    m l{ c|c bit phn l ca phn nh tr M, phn nh tr c ngm nh nh sau: M = 1.m

    Cng thc x|c nh gi| tr ca s thc tng ng l{:

    X = (-1)S x 1.m x 2e-b

  • 83

    V d v s du chm ng

    V d 1: C mt s thc X c dng biu din nh ph}n theo chun IEEE 754 dng 32 bit nh sau:

    1100 0001 0101 0110 0000 0000 0000 0000

    X|c nh gi| tr thp ph}n ca s thc .

    Gii: S = 1 X l{ s }m

    e = 1000 0010 = 130

    m = 10101100...00

    Vy X = (-1)1 x 1.10101100...00 x 2130-127

    = -1.101011 x 23 = -1101.011 = -13.375

  • 84

    V d v s du chm ng (tip)

    V d 2: X|c nh gi| tr thp ph}n ca s thc X c dng biu din theo chun IEEE 754 dng 32 bit nh sau:

    0011 1111 1000 0000 0000 0000 0000 0000

    Gii:

  • 85

    V d v s du chm ng (tip)

    V d 3: Biu din s thc X = 9.6875 v dng s du chm ng theo chun IEEE 754 dng 32 bit

    Gii:

    X = 9.6875(10) = 1001.1011(2) = 1.0011011 x 23

    Ta c:

    S = 0 v }y l{ s dng

    E = e 127 nn e = 127 + 3 = 130(10) = 1000 0010(2) m = 001101100...00 (23 bit)

    Vy:

    X = 0100 0001 0001 1011 0000 0000 0000 0000

  • 86

    Cc quy c c bit

    Nu tt c c|c bit ca e u bng 0, c|c bit ca m u bng 0, th X = 0

    Nu tt c c|c bit ca e u bng 1, c|c bit ca m u bng 0, th X =

    Nu tt c c|c bit ca e u bng 1, m c t nht mt bit bng 1, th X khng phi l{ s (not a number - NaN)

  • 87

    Trc s biu din

    Dng 32 bit: a = 2-127 10-38 b = 2+127 10+38

    Dng 64 bit: a = 2-1023 10-308 b = 2+1023 10+308

    Dng 80 bit: a = 2-16383 10-4932 b = 2+16383 10+4932

    -0 +0-a b-b a

    underflowoverflow overflow

  • 88

    Thc hin cc php ton

    X1 = M1 * RE1

    X2 = M2 * RE2

    Ta c X1 X2 = (M1 * R

    E1-E2 M2) * RE2 , vi E2 E1

    X1 * X2 = (M1 * M2) * RE1+E2

    X1 / X2 = (M1 / M2) * RE1-E2

  • 89

    Cc kh nng trn s

    Tr{n trn s m (Exponent Overflow): m dng vt ra khi gi| tr cc i ca s m dng c th.

    Tr{n di s m (Exponent Underflow): m }m vt ra khi gi| tr cc i ca s m }m c th.

    Tr{n trn phn nh tr (Mantissa Overflow): cng hai phn nh tr c cng du, kt qu b nh ra ngo{i bit cao nht.

    Tr{n di phn nh tr (Mantissa Underflow): Khi hiu chnh phn nh tr, c|c s b mt bn phi phn nh tr.

  • 90

    Php cng v php tr

    Kim tra c|c s hng c bng 0 hay khng Nu c th g|n kt qu da trn s cn li.

    Hiu chnh phn nh tr Sao cho 2 s c phn m ging nhau: tng s m nh v{ dch phi phn

    nh tr tng ng (dch phi hn ch sai s nu c).

    VD: 1.01 * 23 + 1.11 = 1.01 * 23 + 0.00111 * 23

    Cng hoc tr phn nh tr Nu tr{n th dch phi v{ tng s m, nu b tr{n s m th b|o li tr{n

    s.

    Chun ha kt qu Dch tr|i phn nh tr bit tr|i nht (bit MSB) kh|c 0.

    Tng ng vi vic gim s m nn c th dn n hin tng tr{n di s m.

  • 91

    Ni dung chng 2

    2.1. C|c h m c bn

    2.2. M~ ha v{ lu tr d liu trong m|y tnh

    2.3. Biu din s nguyn

    2.4. C|c php to|n s hc vi s nguyn

    2.5. Biu din s thc

    2.6. Biu din k t

  • 92

    Biu din k t trong my tnh

    1. B m~ ASCII (American Standard Code for Information Interchange)

    2. B m~ Unicode

  • 93

    1. B m ASCII

    Do ANSI (American National Standard Institute) thit k

    L{ b m~ 8 bit m~ ha c cho 28 = 256 k t, c m~ t 0016 FF16, bao gm: 128 k t chun c m~ t 0016 7F16 128 k t m rng c m~ t 8016 FF16

  • 94

    HEXA 0 1 2 3 4 5 6 7

    0

    0

    16

    32

    0

    48

    @

    64

    P

    80

    `

    96

    p

    112

    1

    1

    17

    !

    33

    1

    49

    A

    65

    Q

    81

    a

    97

    q

    113

    2

    2

    18

    "

    34

    2

    50

    B

    66

    R

    82

    b

    98

    r

    114

    3

    3

    19

    #

    35

    3

    51

    C

    67

    S

    83

    c

    99

    s

    115

    4

    4

    20

    $

    36

    4

    52

    D

    68

    T

    84

    d

    100

    t

    116

    5

    5

    21

    %

    37

    5

    53

    E

    69

    U

    85

    e

    101

    u

    117

    6

    6

    22

    &

    38

    6

    54

    F

    70

    V

    86

    f

    102

    v

    118

    7

    7

    23

    '

    39

    7

    55

    G

    71

    W

    87

    g

    103

    w

    119

    8

    8

    24

    (

    40

    8

    56

    H

    72

    X

    88

    h

    104

    x

    120

    9

    9

    25

    )

    41

    9

    57

    I

    73

    Y

    89

    i

    105

    y

    121

    A

    10

    26

    *

    42

    :

    58

    J

    74

    Z

    90

    j

    106

    z

    122

    B

    11

    27

    +

    43

    ;

    59

    K

    75

    [

    91

    k

    107

    {

    123

    C

    12

    28

    ,

    44

    <

    60

    L

    76

    \

    92

    l

    108

    |

    124

    D

    13

    29

    -

    45

    =

    61

    M

    77

    ]

    93

    m

    109

    }

    125

    E

    14

    30

    .

    46

    >

    62

    N

    78

    ^

    94

    n

    110

    ~

    126

    F

    15

    31

    /

    47

    ?

    63

    O

    79

    -

    95

    o

    111

    127

  • 95

    a. Cc k t chun

    95 k t hin th c: c m~ t 2016 7E16 26 ch c|i hoa Latin 'A' 'Z' c m~ t 4116 5A16 26 ch c|i thng Latin 'a' 'z' c m~ t 6116 7A16 10 ch s thp ph}n '0' '9' c m~ t 3016 3916 C|c du c}u: . , ? ! : ;

    C|c du php to|n: + - * /

    Mt s k t thng dng: #, $, &, @, ...

    Du c|ch (m~ l{ 2016)

    33 m~ iu khin: m~ t 0016 1F16 v 7F16 dng m~ ha cho c|c chc nng iu khin

  • 96

    iu khin nh dng

    BS Backspace - Li li mt v tr: K t iu khin con tr li li mt v tr.

    HT Horizontal Tab - Tab ngang: K t iu khin con tr dch tip mt khong nh trc.

    LF Line Feed - Xung mt dng: K t iu khin con tr chuyn xung dng di.

    VT Vertical Tab - Tab ng: K t iu khin con tr chuyn qua mt s dng nh trc.

    FF Form Feed - y sang u trang: K t iu khin con tr di chuyn xung u trang tip theo.

    CR Carriage Return - V u dng: K t iu khin con tr di chuyn v u dng hin hnh.

  • 97

    iu khin truyn s liu

    SOH Start of Heading - Bt u tiu : K t nh du bt u phn thng tin tiu .

    STX Start of Text - Bt u vn bn: K t nh du bt u khi d liu vn bn v cng chnh l kt thc phn thng tin tiu .

    ETX End of Text - Kt thc vn bn: K t nh du kt thc khi d liu vn bn c bt u bng STX.

    EOT End of Transmission - Kt thc truyn: Ch ra cho bn thu bit kt thc truyn.

    ENQ Enquiry - Hi: Tn hiu yu cu p ng t mt my xa.

    ACK Acknowledge - Bo nhn: K t c pht ra t pha thu bo cho pha pht bit rng d liu c nhn thnh cng.

    NAK Negative Aknowledge - Bo ph nhn: K t c pht ra t pha thu bo cho pha pht bit rng vic nhn d liu khng thnh cng.

    SYN Synchronous / Idle - ng b ha: c s dng bi h thng truyn ng b ng b ho qu trnh truyn d liu.

    ETB End of Transmission Block - Kt thc khi truyn: Ch ra kt thc khi d liu c truyn.

  • 98

    iu khin phn cch thng tin

    FS File Separator - K hiu phn cch tp tin: nh du ranh gii gia cc tp tin.

    GS Group Separator - K hiu phn cch nhm: nh du ranh gii gia cc nhm tin (tp hp cc bn ghi).

    RS Record Separator - K hiu phn cch bn ghi: nh du ranh gii gia cc bn ghi.

    US Unit Separator - K hiu phn cch n v: nh du ranh gii gia cc phn ca bn ghi.

  • 99

    Cc k t iu khin khc

    NUL Null - K t rng: c s dng in khong trng khi khng c d liu.

    BEL Bell - Chung: c s dng pht ra ting bp khi cn gi s ch ca con ngi.

    SO Shift Out - Dch ra: Ch ra rng cc m tip theo s nm ngoi tp k t chun cho n khi gp k t SI.

    SI Shift In - Dch vo: Ch ra rng cc m tip theo s nm trong tp k t chun.

    DLE Data Link Escape - Thot lin kt d liu: K t s thay i ngha ca mt hoc nhiu k t lin tip sau .

    DC1

    DC4

    Device Control - iu khin thit b : Cc k t dng iu khin cc thit b ph tr.

    CAN Cancel - Hy b: Ch ra rng mt s k t nm trc n cn phi b qua.

    EM End of Medium - Kt thc phng tin: Ch ra k t ngay trc n l k t cui cng c tc dng vi phng tin vt l.

    SUB Substitute - Thay th: c thay th cho k t no c xc nh l b li.

    ESC Escape - Thot: K t c dng cung cp cc m m rng bng cch kt hp vi k t sau .

    DEL Delete - Xa: Dng xa cc k t khng mong mun.

  • 100

    b. Cc k t m rng

    c nh ngha bi: Nh{ ch to m|y tnh

    Ngi ph|t trin phn mm

    V d: B m~ k t m rng ca IBM: c dng trn m|y tnh

    IBM-PC.

    B m~ k t m rng ca Apple: c dng trn m|y tnh Macintosh.

    C|c nh{ ph|t trin phn mm ting Vit cng ~ thay i phn n{y m~ ho| cho c|c k t ring ca ch Vit, v d nh b m~ TCVN 5712.

  • 101

    2. B m Unicode

    Do c|c h~ng m|y tnh h{ng u thit k

    L{ b m~ 16-bit

    c thit ke cho a ngn ng, trong c ting Vit

  • 102

    Bi tp 1

    Gi s c c|c bin nh di }y cha c|c s nguyn c du 8-bit vi ni dung biu din theo h 16 nh sau:

    P = 3A Q = 7C R = DE S = FF

    H~y x|c nh gi| tr ca c|c bin nh di dng s thp ph}n.

  • 103

    Bi tp 2

    Gi s c X thuc kiu s nguyn c du 16-bit, n c g|n gi| tr di dng thp ph}n bng -1234. H~y cho bit ni dung ca c|c byte nh cha bin di dng Hexa, bit rng b nh lu tr theo kiu u nh (little-endian).

  • 104

    Bi tp 3

    Gi s c bin P cha s nguyn c du 16 bit. Ni dung ca bin P c cho trong b nh nh sau:

    H~y x|c nh gi| tr ca bin P di dng thp ph}n.

    9D(16)

    80(16)

    a ch tng dn

    (Little-endian)

  • 105

    Bi tp 4

    Gi s c mt bin s thc X c biu din bng s du chm ng theo chun IEEE 754 dng 32 bit, n chim 4 byte trong b nh vi ni dung c ch ra hnh v sau.

    Bit rng b nh t chc theo kiu u nh (little-endian), hy x|c nh gi| tr thp ph}n ca s thc .

    00(16)

    80(16) a ch tng dnD9(16)

    C3(16)

  • 106

    Bi tp 5

    Gi s c bin X thuc kiu s du chm ng theo chun IEEE 754 dng 32 bit. N c g|n gi| tr di dng thp ph}n bng -124.125 v{ lu tr v{o b nh bt u t byte nh c a ch l{ 200. H~y cho bit ni dung ca c|c byte nh cha bin di dng Hexa, bit rng b nh lu tr theo kiu u nh (little-endian).