Kiến trúc máy tính

41
Kiến trúc máy tính Chương 3: Tổ chức thông tin

description

Kiến trúc máy tính. Chương 3: Tổ chức thông tin. BIỂU DIỄN DỮ LIỆU VÀ SỐ HỌC MÁY TÍNH. 3.1. Các hệ thống số 3.2. Mã hoá và lưu trữ dữ liệu trong máy tính 3.3. Biểu diễn số nguyên 3.4. Thực hiện các phép toán số học với số nguyên 3.5. Số dấu chấm động 3.6. Biểu diễn ký tự. - PowerPoint PPT Presentation

Transcript of Kiến trúc máy tính

Page 1: Kiến trúc máy tính

Kiến truacutec maacutey tiacutenh

Chương 3 Tổ chức thocircng tin

BIỂU DIỄN DỮ LIỆU VAgraveSỐ HỌC MAacuteY TIacuteNH

31 Caacutec hệ thống số 32 Matilde hoaacute vagrave lưu trữ dữ liệu trong maacutey tiacutenh 33 Biểu diễn số nguyecircn 34 Thực hiện caacutec pheacutep toaacuten số học với số

nguyecircn 35 Số dấu chấm động 36 Biểu diễn kyacute tự

31 Caacutec hệ thống số

Hệ thập phacircn (Decimal System) Con người sử dụng

Hệ nhị phacircn (Binary System) Maacutey tiacutenh sử dụng

Hệ thập lục phacircn (Hexadecimal System) Dugraveng để viết gọn số nhị phacircn

Hệ baacutet phacircn (Octal System)

Hệ thập phacircn

Hệ thập phacircn

Cơ số 10 10 chữ số 0 1 2 3 4 5 6 7 8 9

Dugraveng n chữ số thập phacircn coacute thể biểu diễn được 10n giaacute trị khaacutec nhau 00000 = 0 99999 = 10n - 1

Hệ thập phacircn

47238 = 4x102 + 7x101 + 2x100 + 3x10-1 + 8x10-2

Caacutec chữ số của phần nguyecircn 472 10 = 47 dư 2 47 10 = 4 dư 7 4 10 = 0 dư 4

Caacutec chữ số của phần lẻ 038 x 10 = 38 phần nguyecircn = 3 08 x 10 = 80 phần nguyecircn = 8

Hệ nhị phacircn

Hệ nhị phacircn

Cơ số 2 2 chữ số nhị phacircn 0 vagrave 1

Chữ số nhị phacircn gọi lagrave bit (binary digit) Bit lagrave đơn vị thocircng tin nhỏ nhất

Dugraveng n bit coacute thể biểu diễn được 2n giaacute trị khaacutec nhau 00000 = 0 11111 = 2n-1

Hệ nhị phacircn

Coacute một số nhị phacircn A như sauA = anan-1a1a0a-1a-m

Giaacute trị của A được tiacutenh như sauA = an2n + an-12n-1 ++ a020 + a-12-1 ++ a-m2-m

Viacute dụ 11010011 0 1 1(2)

6543210-1-2-3-4

= 26 + 25 + 23 + 20 + 2-1 + 2-3 + 2-4

= 64 + 32 + 8 + 1 + 05 + 0125 + 00625

= 1056875(10)

Hệ baacutet phacircn

Hệ thập lục phacircn

Tổng quaacutet

Chuyển đổi caacutec hệ số

Chuyển đổi caacutec hệ số

Phương phaacutep chuyển đổi

Phương phaacutep chuyển đổi

Biểu diễn thocircng tin tronghệ nhị phacircn

BIT (BInary digiT)

0 1 BYTE = tổ hợp 8 bit

01001101 11111111 WORD = tổ hợp nhiều bit

10110 1011100101 1 KiloByte (KB) = 1024 byte = 210 byte 1 MegaByte (MB) = 1024 KB = 220 byte 1 GigaByte (GB) = 1024 MB = 230 byte

32 Matilde hoaacute vagrave lưu trữ dữ liệu trong maacutey tiacutenh

Nguyecircn tắc chung về matilde hoaacute dữ liệu Mọi dữ liệu đưa vagraveo maacutey tiacutenh đều được matilde hoaacute

thagravenh số nhị phacircn Caacutec loại dữ liệu

Dữ liệu nhacircn tạo do con người quy ước Dữ liệu số nguyecircn matilde hoaacute theo một số chuẩnqui ước Dữ liệu số thực matilde hoaacute bằng số dấu chấm động Dữ liệu kyacute tự matilde hoaacute theo bộ matilde kyacute tự

Dữ liệu tự nhiecircn tồn tại khaacutech quan với con người

Matilde hoacutea thocircng tin đầu vagraveo

Matilde hoacutea thocircng tin đầu vagraveo

Thứ tự lưu trữ caacutec byte của dữ liệu

Bộ nhớ chiacutenh thường được tổ chức theo byte Độ dagravei từ dữ liệu coacute thể chiếm từ một đến

nhiều byterArr cần phải biết thứ tự lưu trữ caacutec byte trong bộ nhớ

chiacutenh với caacutec dữ liệu nhiều byte

Thứ tự lưu trữ caacutec byte của dữ liệu

Coacute 2 caacutech lưu trữ Lưu trữ đầu nhỏ (Little-endian) Byte thấp được lưu trữ ở

ngăn nhớ coacute địa chỉ nhỏ hơn byte cao được lưu trữ ở ngăn nhớ coacute địa chỉ lớn hơn

Lưu trữ đầu to (Big-endian) Byte cao được lưu trữ ở ngăn nhớ coacute địa chỉ nhỏ hơn byte thấp được lưu trữ ở ngăn nhớ coacute địa chỉ lớn hơn

Intel 80x86 vagrave caacutec Pentium Little-endianrArr Motorola 680x0 vagrave caacutec bộ xử lyacute RISC Big-endianrArr Power PC vagrave Itanium cả hairArr

33 Biểu diễn số nguyecircn

Coacute hai loại số nguyecircn Số nguyecircn khocircng dấu (Unsigned Integer) Số nguyecircn coacute dấu (Signed Integer)

Biểu diễn số nguyecircn khocircng dấu Dugraveng n bit biểu diễn số nguyecircn khocircng dấu A

an-1an-2hellipa2a1a0

Giaacute trị của A được tiacutenh như sau Dải biểu diễn của A 0 -- 2n-1

Số 8 bit coacute giaacute trị 0 divide 255 Số 16 bit coacute giaacute trị 0 divide 65 535 Số 32 bit coacute giaacute trị 0 divide 4 294 967 295

1

0

2n

i

iiaA

Biểu diễn số nguyecircn khocircng dấun=8 bit

Biểu diễn được caacutec giaacute trị từ 0 đến 255 0000 0000 = 0 Chuacute yacute 0000 0001 = 1 1111 1111 0000 0010 = 2 + 0000 0001 0000 0011 = 3 1 0000 0000 hellip Vậy 255 + 1 = 0 1111 1111 = 255 do tragraven nhớ ra ngoagravei

Biểu diễn số nguyecircn coacute dấu

Số bugrave một vagrave Số bugrave hai Giả sử A lagrave một số nhị phacircn ta coacute Số bugrave một của A nhận được bằng caacutech đảo giaacute trị caacutec bit

của A (Số bugrave hai của A) = (Số bugrave một của A) + 1

Viacute dụ với n= 8 bit Giả sử coacute A = 0010 0101 Số bugrave một của A = 1101 1010

+ 1 Số bugrave hai của A = 1101 1011

Vigrave A + (Số bugrave hai của A) = 0 dugraveng số bugrave hai để biểu diễn cho số acircm

Biểu diễn số nguyecircn coacute dấu

Biểu diễn số nguyecircn coacute dấu bằng matilde bugrave hai Dugraveng n bit biểu diễn số nguyecircn coacute dấu A

an-1an-2hellipa2a1a0

Qui ước chọn bit coacute trọng số cao nhất (MSB) lagravem bit dấu Với A lagrave số dương bit an-1 = 0 caacutec bit cograven lại biểu diễn

độ lớn như số khocircng dấu Với A lagrave số acircm được biểu diễn bằng số bugrave hai của số

dương tương ứng vigrave vậy bit an-1 = 1

Biểu diễn số nguyecircn coacute dấu

Dạng tổng quaacutet của số nguyecircn A

an-1an-2hellipa2a1a0

Giaacute trị của A được xaacutec định như sau

Dải biểu diễn -2n-1 divide 2n-1-1 Số 8 bit coacute dấu coacute giaacute trị -128 divide +127 Số 16 bit coacute dấu coacute giaacute trị -32768 divide +32767

2

0

11 22

n

i

ii

nn aaA

Biểu diễn số nguyecircn coacute dấu n = 8 bit Biểu diễn được caacutec giaacute trị từ -128 đến +127 0000 0000 = 0 0000 0001 = +1 0000 0010 = +2 Chuacute yacute 0000 0011 = +3 +127 + 1 = -128 hellip -128 - 1 = +127 0111 1111 = +127 do tragraven xảy ra 1000 0000 = - 128 1000 0001 = - 127 hellip 1111 1110 = -2 1111 1111 = -1

Biểu diễn số nguyecircn coacute dấu

Chuyển đổi từ byte thagravenh word Đối với số dương

+19 = 0001 0011 (8 bit) +19 = 0000 0000 0001 0011 (16 bit)thecircm 8 bit 0 becircn traacutei

Đối với số acircm - 19 = 1110 1101 (8 bit) - 19 = 1111 1111 1110 1101 (16 bit)thecircm 8 bit 1 becircn traacutei

Với n=32 bit biểu diễn từ -231 đến 231-1 Với n=64 bit biểu diễn từ -263 đến 263-1

Biểu diễn số nguyecircn theo matilde BCD Binary Coded Decimal Code Số BCD được dugraveng để tiacutenh toaacuten trecircn số thập phacircn

trong hệ nhị phacircn Số BCD lagrave số viết theo hệ 16 nhưng giaacute trị tiacutenh theo

hệ 10 Số 12BCD được viết trong hệ 2 lagrave 0001 0010 nhưng coacute giaacute

trị lagrave 12 thay vigrave 18 (1216= 1810) Dugraveng 4 bit để matilde hoaacute cho caacutec chữ số thập phacircn từ 0 đến 9

0 0000 3 0011 6 0110 9 10011 0001 4 0100 7 0111 2 0010 5 0101 8 1000

Coacute 6 tổ hợp khocircng sử dụng 1010 1011 1100 1101 1110 1111

Caacutec kiểu lưu trữ số BCD

BCD khocircng goacutei (Unpacked BCD) Mỗi số BCD 4-bit được lưu trữ trong 4-bit thấp

của mỗi byte Viacute dụ Số 35 được lưu trữ 2 byte

0011 0101

BCD goacutei (Packed BCD) Hai số BCD được lưu trữ trong 1 byte Viacute dụ số 35 được lưu trữ 1 byte

0 0 1 1 0 1 0 1

Thực hiện caacutec pheacutep toaacuten số học với số nguyecircn Pheacutep cộng Pheacutep đảo dấu

Pheacutep đảo dấu trong maacutey tiacutenh thực chất lagrave lấy bugrave 2 Pheacutep trừ Nhacircn số nguyecircn

khocircng dấu coacute dấu

Thuật toaacuten nhacircn nhanh Booth Chia số nguyecircn

khocircng dấu coacute dấu

Số dấu chấm động

Số chấm động (floating point) dugraveng để tiacutenh toaacuten trecircn số thực một số thực X được biểu diễn theo kiểu số dấu chấm động

như sauX = plusmn m Bplusmne

m lagrave phần định trị (Mantissa) B lagrave cơ số (base) e lagrave phần mũ (Exponent)

m (mantissa) quyết định độ chiacutenh xaacutec B (base) e (exponent) quyết định độ lớnnhỏ

Số dấu chấm động

Một giaacute trị coacute thể biểu diễn dưới nhiều dạng Khoacute xử lyacute Cần chuẩn hoacutea

Số chấm động theo chuẩn IEEE 754 Cơ số 2 Coacute 2 dạng

Chiacutenh xaacutec đơn 32 bit độ lệch mũ (bias) 127 Cocircng thức tiacutenh giaacute trị X = (-1)S x 1m x 2e-127

Chiacutenh xaacutec keacutep 64 bit độ lệch mũ (bias) 1023 Cocircng thức tiacutenh giaacute trị X = (-1)S x 1m x 2e-1023

Số chấm động theo chuẩn IEEE 754

Caacutec quy ước đặc biệt

Caacutec bit của e bằng 0 caacutec bit của m bằng 0 thigrave X= plusmn 0 x000 0000 0000 0000 0000 0000 0000 0000 X= plusmn 0

Caacutec bit của e bằng 1 caacutec bit của m bằng 0 thigrave X= plusmn infin x111 1111 1000 0000 0000 0000 0000 0000 1048774 X= plusmn infin

Caacutec bit của e bằng 1 cograven m coacute iacutet nhất 1 bit bằng 1 thigrave noacute khocircng biểu diễn cho số nagraveo cả (NaN ndash not a number)

Biểu diễn kyacute tự

Bộ matilde ASCII (American Standard Code for Information Interchange) Do ANSI (American National Standard Institute)

thiết kế Bộ matilde 8 bit coacute thể matilde hoacutea được 28 =256 kyacute tự

coacute matilde từ 0016 divide FF16 trong đoacute 128 kyacute tự chuẩn coacute matilde từ 0016 divide 7F16 128 kyacute tự mở rộng coacute matilde từ 8016 divide FF16

Bộ matilde Unicode

Bộ matilde ASCII Caacutec kyacute tự chuẩn

26 chữ caacutei hoa lsquoArsquo đến lsquoZrsquo coacute matilde từ 4116 đến 5A16 (65 đến 90) lsquoArsquo 1048774 0100 0001 = 4116 lsquoBrsquo 1048774 0100 0010 = 4216 lsquoZrsquo 1048774 0101 1010 = 5A16

26 chữ caacutei thường lsquoarsquo đến lsquozrsquo coacute matilde từ 6116 đến 7A16 (97 đến 122) lsquoarsquo 1048774 0110 0001 = 6116 lsquobrsquo 1048774 0110 0010 = 6216 lsquozrsquo 1048774 0111 1010 = 7A16

10 chữ số thập phacircn từ 0 đến 9 coacute matilde từ 3016 đến 3916 (48 đến 57) lsquo0rsquo 1048774 0011 0000 = 3016 lsquo1rsquo 1048774 0011 0001 = 3116 lsquo9rsquo 1048774 0011 1001 = 3916

Bộ matilde hợp nhất Unicode

Do caacutec hatildeng maacutey tiacutenh hagraveng đầu thiết kế Bộ matilde 16-bit Bộ matilde đa ngocircn ngữ Coacute hỗ trợ caacutec kyacute tự tiếng Việt

Page 2: Kiến trúc máy tính

BIỂU DIỄN DỮ LIỆU VAgraveSỐ HỌC MAacuteY TIacuteNH

31 Caacutec hệ thống số 32 Matilde hoaacute vagrave lưu trữ dữ liệu trong maacutey tiacutenh 33 Biểu diễn số nguyecircn 34 Thực hiện caacutec pheacutep toaacuten số học với số

nguyecircn 35 Số dấu chấm động 36 Biểu diễn kyacute tự

31 Caacutec hệ thống số

Hệ thập phacircn (Decimal System) Con người sử dụng

Hệ nhị phacircn (Binary System) Maacutey tiacutenh sử dụng

Hệ thập lục phacircn (Hexadecimal System) Dugraveng để viết gọn số nhị phacircn

Hệ baacutet phacircn (Octal System)

Hệ thập phacircn

Hệ thập phacircn

Cơ số 10 10 chữ số 0 1 2 3 4 5 6 7 8 9

Dugraveng n chữ số thập phacircn coacute thể biểu diễn được 10n giaacute trị khaacutec nhau 00000 = 0 99999 = 10n - 1

Hệ thập phacircn

47238 = 4x102 + 7x101 + 2x100 + 3x10-1 + 8x10-2

Caacutec chữ số của phần nguyecircn 472 10 = 47 dư 2 47 10 = 4 dư 7 4 10 = 0 dư 4

Caacutec chữ số của phần lẻ 038 x 10 = 38 phần nguyecircn = 3 08 x 10 = 80 phần nguyecircn = 8

Hệ nhị phacircn

Hệ nhị phacircn

Cơ số 2 2 chữ số nhị phacircn 0 vagrave 1

Chữ số nhị phacircn gọi lagrave bit (binary digit) Bit lagrave đơn vị thocircng tin nhỏ nhất

Dugraveng n bit coacute thể biểu diễn được 2n giaacute trị khaacutec nhau 00000 = 0 11111 = 2n-1

Hệ nhị phacircn

Coacute một số nhị phacircn A như sauA = anan-1a1a0a-1a-m

Giaacute trị của A được tiacutenh như sauA = an2n + an-12n-1 ++ a020 + a-12-1 ++ a-m2-m

Viacute dụ 11010011 0 1 1(2)

6543210-1-2-3-4

= 26 + 25 + 23 + 20 + 2-1 + 2-3 + 2-4

= 64 + 32 + 8 + 1 + 05 + 0125 + 00625

= 1056875(10)

Hệ baacutet phacircn

Hệ thập lục phacircn

Tổng quaacutet

Chuyển đổi caacutec hệ số

Chuyển đổi caacutec hệ số

Phương phaacutep chuyển đổi

Phương phaacutep chuyển đổi

Biểu diễn thocircng tin tronghệ nhị phacircn

BIT (BInary digiT)

0 1 BYTE = tổ hợp 8 bit

01001101 11111111 WORD = tổ hợp nhiều bit

10110 1011100101 1 KiloByte (KB) = 1024 byte = 210 byte 1 MegaByte (MB) = 1024 KB = 220 byte 1 GigaByte (GB) = 1024 MB = 230 byte

32 Matilde hoaacute vagrave lưu trữ dữ liệu trong maacutey tiacutenh

Nguyecircn tắc chung về matilde hoaacute dữ liệu Mọi dữ liệu đưa vagraveo maacutey tiacutenh đều được matilde hoaacute

thagravenh số nhị phacircn Caacutec loại dữ liệu

Dữ liệu nhacircn tạo do con người quy ước Dữ liệu số nguyecircn matilde hoaacute theo một số chuẩnqui ước Dữ liệu số thực matilde hoaacute bằng số dấu chấm động Dữ liệu kyacute tự matilde hoaacute theo bộ matilde kyacute tự

Dữ liệu tự nhiecircn tồn tại khaacutech quan với con người

Matilde hoacutea thocircng tin đầu vagraveo

Matilde hoacutea thocircng tin đầu vagraveo

Thứ tự lưu trữ caacutec byte của dữ liệu

Bộ nhớ chiacutenh thường được tổ chức theo byte Độ dagravei từ dữ liệu coacute thể chiếm từ một đến

nhiều byterArr cần phải biết thứ tự lưu trữ caacutec byte trong bộ nhớ

chiacutenh với caacutec dữ liệu nhiều byte

Thứ tự lưu trữ caacutec byte của dữ liệu

Coacute 2 caacutech lưu trữ Lưu trữ đầu nhỏ (Little-endian) Byte thấp được lưu trữ ở

ngăn nhớ coacute địa chỉ nhỏ hơn byte cao được lưu trữ ở ngăn nhớ coacute địa chỉ lớn hơn

Lưu trữ đầu to (Big-endian) Byte cao được lưu trữ ở ngăn nhớ coacute địa chỉ nhỏ hơn byte thấp được lưu trữ ở ngăn nhớ coacute địa chỉ lớn hơn

Intel 80x86 vagrave caacutec Pentium Little-endianrArr Motorola 680x0 vagrave caacutec bộ xử lyacute RISC Big-endianrArr Power PC vagrave Itanium cả hairArr

33 Biểu diễn số nguyecircn

Coacute hai loại số nguyecircn Số nguyecircn khocircng dấu (Unsigned Integer) Số nguyecircn coacute dấu (Signed Integer)

Biểu diễn số nguyecircn khocircng dấu Dugraveng n bit biểu diễn số nguyecircn khocircng dấu A

an-1an-2hellipa2a1a0

Giaacute trị của A được tiacutenh như sau Dải biểu diễn của A 0 -- 2n-1

Số 8 bit coacute giaacute trị 0 divide 255 Số 16 bit coacute giaacute trị 0 divide 65 535 Số 32 bit coacute giaacute trị 0 divide 4 294 967 295

1

0

2n

i

iiaA

Biểu diễn số nguyecircn khocircng dấun=8 bit

Biểu diễn được caacutec giaacute trị từ 0 đến 255 0000 0000 = 0 Chuacute yacute 0000 0001 = 1 1111 1111 0000 0010 = 2 + 0000 0001 0000 0011 = 3 1 0000 0000 hellip Vậy 255 + 1 = 0 1111 1111 = 255 do tragraven nhớ ra ngoagravei

Biểu diễn số nguyecircn coacute dấu

Số bugrave một vagrave Số bugrave hai Giả sử A lagrave một số nhị phacircn ta coacute Số bugrave một của A nhận được bằng caacutech đảo giaacute trị caacutec bit

của A (Số bugrave hai của A) = (Số bugrave một của A) + 1

Viacute dụ với n= 8 bit Giả sử coacute A = 0010 0101 Số bugrave một của A = 1101 1010

+ 1 Số bugrave hai của A = 1101 1011

Vigrave A + (Số bugrave hai của A) = 0 dugraveng số bugrave hai để biểu diễn cho số acircm

Biểu diễn số nguyecircn coacute dấu

Biểu diễn số nguyecircn coacute dấu bằng matilde bugrave hai Dugraveng n bit biểu diễn số nguyecircn coacute dấu A

an-1an-2hellipa2a1a0

Qui ước chọn bit coacute trọng số cao nhất (MSB) lagravem bit dấu Với A lagrave số dương bit an-1 = 0 caacutec bit cograven lại biểu diễn

độ lớn như số khocircng dấu Với A lagrave số acircm được biểu diễn bằng số bugrave hai của số

dương tương ứng vigrave vậy bit an-1 = 1

Biểu diễn số nguyecircn coacute dấu

Dạng tổng quaacutet của số nguyecircn A

an-1an-2hellipa2a1a0

Giaacute trị của A được xaacutec định như sau

Dải biểu diễn -2n-1 divide 2n-1-1 Số 8 bit coacute dấu coacute giaacute trị -128 divide +127 Số 16 bit coacute dấu coacute giaacute trị -32768 divide +32767

2

0

11 22

n

i

ii

nn aaA

Biểu diễn số nguyecircn coacute dấu n = 8 bit Biểu diễn được caacutec giaacute trị từ -128 đến +127 0000 0000 = 0 0000 0001 = +1 0000 0010 = +2 Chuacute yacute 0000 0011 = +3 +127 + 1 = -128 hellip -128 - 1 = +127 0111 1111 = +127 do tragraven xảy ra 1000 0000 = - 128 1000 0001 = - 127 hellip 1111 1110 = -2 1111 1111 = -1

Biểu diễn số nguyecircn coacute dấu

Chuyển đổi từ byte thagravenh word Đối với số dương

+19 = 0001 0011 (8 bit) +19 = 0000 0000 0001 0011 (16 bit)thecircm 8 bit 0 becircn traacutei

Đối với số acircm - 19 = 1110 1101 (8 bit) - 19 = 1111 1111 1110 1101 (16 bit)thecircm 8 bit 1 becircn traacutei

Với n=32 bit biểu diễn từ -231 đến 231-1 Với n=64 bit biểu diễn từ -263 đến 263-1

Biểu diễn số nguyecircn theo matilde BCD Binary Coded Decimal Code Số BCD được dugraveng để tiacutenh toaacuten trecircn số thập phacircn

trong hệ nhị phacircn Số BCD lagrave số viết theo hệ 16 nhưng giaacute trị tiacutenh theo

hệ 10 Số 12BCD được viết trong hệ 2 lagrave 0001 0010 nhưng coacute giaacute

trị lagrave 12 thay vigrave 18 (1216= 1810) Dugraveng 4 bit để matilde hoaacute cho caacutec chữ số thập phacircn từ 0 đến 9

0 0000 3 0011 6 0110 9 10011 0001 4 0100 7 0111 2 0010 5 0101 8 1000

Coacute 6 tổ hợp khocircng sử dụng 1010 1011 1100 1101 1110 1111

Caacutec kiểu lưu trữ số BCD

BCD khocircng goacutei (Unpacked BCD) Mỗi số BCD 4-bit được lưu trữ trong 4-bit thấp

của mỗi byte Viacute dụ Số 35 được lưu trữ 2 byte

0011 0101

BCD goacutei (Packed BCD) Hai số BCD được lưu trữ trong 1 byte Viacute dụ số 35 được lưu trữ 1 byte

0 0 1 1 0 1 0 1

Thực hiện caacutec pheacutep toaacuten số học với số nguyecircn Pheacutep cộng Pheacutep đảo dấu

Pheacutep đảo dấu trong maacutey tiacutenh thực chất lagrave lấy bugrave 2 Pheacutep trừ Nhacircn số nguyecircn

khocircng dấu coacute dấu

Thuật toaacuten nhacircn nhanh Booth Chia số nguyecircn

khocircng dấu coacute dấu

Số dấu chấm động

Số chấm động (floating point) dugraveng để tiacutenh toaacuten trecircn số thực một số thực X được biểu diễn theo kiểu số dấu chấm động

như sauX = plusmn m Bplusmne

m lagrave phần định trị (Mantissa) B lagrave cơ số (base) e lagrave phần mũ (Exponent)

m (mantissa) quyết định độ chiacutenh xaacutec B (base) e (exponent) quyết định độ lớnnhỏ

Số dấu chấm động

Một giaacute trị coacute thể biểu diễn dưới nhiều dạng Khoacute xử lyacute Cần chuẩn hoacutea

Số chấm động theo chuẩn IEEE 754 Cơ số 2 Coacute 2 dạng

Chiacutenh xaacutec đơn 32 bit độ lệch mũ (bias) 127 Cocircng thức tiacutenh giaacute trị X = (-1)S x 1m x 2e-127

Chiacutenh xaacutec keacutep 64 bit độ lệch mũ (bias) 1023 Cocircng thức tiacutenh giaacute trị X = (-1)S x 1m x 2e-1023

Số chấm động theo chuẩn IEEE 754

Caacutec quy ước đặc biệt

Caacutec bit của e bằng 0 caacutec bit của m bằng 0 thigrave X= plusmn 0 x000 0000 0000 0000 0000 0000 0000 0000 X= plusmn 0

Caacutec bit của e bằng 1 caacutec bit của m bằng 0 thigrave X= plusmn infin x111 1111 1000 0000 0000 0000 0000 0000 1048774 X= plusmn infin

Caacutec bit của e bằng 1 cograven m coacute iacutet nhất 1 bit bằng 1 thigrave noacute khocircng biểu diễn cho số nagraveo cả (NaN ndash not a number)

Biểu diễn kyacute tự

Bộ matilde ASCII (American Standard Code for Information Interchange) Do ANSI (American National Standard Institute)

thiết kế Bộ matilde 8 bit coacute thể matilde hoacutea được 28 =256 kyacute tự

coacute matilde từ 0016 divide FF16 trong đoacute 128 kyacute tự chuẩn coacute matilde từ 0016 divide 7F16 128 kyacute tự mở rộng coacute matilde từ 8016 divide FF16

Bộ matilde Unicode

Bộ matilde ASCII Caacutec kyacute tự chuẩn

26 chữ caacutei hoa lsquoArsquo đến lsquoZrsquo coacute matilde từ 4116 đến 5A16 (65 đến 90) lsquoArsquo 1048774 0100 0001 = 4116 lsquoBrsquo 1048774 0100 0010 = 4216 lsquoZrsquo 1048774 0101 1010 = 5A16

26 chữ caacutei thường lsquoarsquo đến lsquozrsquo coacute matilde từ 6116 đến 7A16 (97 đến 122) lsquoarsquo 1048774 0110 0001 = 6116 lsquobrsquo 1048774 0110 0010 = 6216 lsquozrsquo 1048774 0111 1010 = 7A16

10 chữ số thập phacircn từ 0 đến 9 coacute matilde từ 3016 đến 3916 (48 đến 57) lsquo0rsquo 1048774 0011 0000 = 3016 lsquo1rsquo 1048774 0011 0001 = 3116 lsquo9rsquo 1048774 0011 1001 = 3916

Bộ matilde hợp nhất Unicode

Do caacutec hatildeng maacutey tiacutenh hagraveng đầu thiết kế Bộ matilde 16-bit Bộ matilde đa ngocircn ngữ Coacute hỗ trợ caacutec kyacute tự tiếng Việt

Page 3: Kiến trúc máy tính

31 Caacutec hệ thống số

Hệ thập phacircn (Decimal System) Con người sử dụng

Hệ nhị phacircn (Binary System) Maacutey tiacutenh sử dụng

Hệ thập lục phacircn (Hexadecimal System) Dugraveng để viết gọn số nhị phacircn

Hệ baacutet phacircn (Octal System)

Hệ thập phacircn

Hệ thập phacircn

Cơ số 10 10 chữ số 0 1 2 3 4 5 6 7 8 9

Dugraveng n chữ số thập phacircn coacute thể biểu diễn được 10n giaacute trị khaacutec nhau 00000 = 0 99999 = 10n - 1

Hệ thập phacircn

47238 = 4x102 + 7x101 + 2x100 + 3x10-1 + 8x10-2

Caacutec chữ số của phần nguyecircn 472 10 = 47 dư 2 47 10 = 4 dư 7 4 10 = 0 dư 4

Caacutec chữ số của phần lẻ 038 x 10 = 38 phần nguyecircn = 3 08 x 10 = 80 phần nguyecircn = 8

Hệ nhị phacircn

Hệ nhị phacircn

Cơ số 2 2 chữ số nhị phacircn 0 vagrave 1

Chữ số nhị phacircn gọi lagrave bit (binary digit) Bit lagrave đơn vị thocircng tin nhỏ nhất

Dugraveng n bit coacute thể biểu diễn được 2n giaacute trị khaacutec nhau 00000 = 0 11111 = 2n-1

Hệ nhị phacircn

Coacute một số nhị phacircn A như sauA = anan-1a1a0a-1a-m

Giaacute trị của A được tiacutenh như sauA = an2n + an-12n-1 ++ a020 + a-12-1 ++ a-m2-m

Viacute dụ 11010011 0 1 1(2)

6543210-1-2-3-4

= 26 + 25 + 23 + 20 + 2-1 + 2-3 + 2-4

= 64 + 32 + 8 + 1 + 05 + 0125 + 00625

= 1056875(10)

Hệ baacutet phacircn

Hệ thập lục phacircn

Tổng quaacutet

Chuyển đổi caacutec hệ số

Chuyển đổi caacutec hệ số

Phương phaacutep chuyển đổi

Phương phaacutep chuyển đổi

Biểu diễn thocircng tin tronghệ nhị phacircn

BIT (BInary digiT)

0 1 BYTE = tổ hợp 8 bit

01001101 11111111 WORD = tổ hợp nhiều bit

10110 1011100101 1 KiloByte (KB) = 1024 byte = 210 byte 1 MegaByte (MB) = 1024 KB = 220 byte 1 GigaByte (GB) = 1024 MB = 230 byte

32 Matilde hoaacute vagrave lưu trữ dữ liệu trong maacutey tiacutenh

Nguyecircn tắc chung về matilde hoaacute dữ liệu Mọi dữ liệu đưa vagraveo maacutey tiacutenh đều được matilde hoaacute

thagravenh số nhị phacircn Caacutec loại dữ liệu

Dữ liệu nhacircn tạo do con người quy ước Dữ liệu số nguyecircn matilde hoaacute theo một số chuẩnqui ước Dữ liệu số thực matilde hoaacute bằng số dấu chấm động Dữ liệu kyacute tự matilde hoaacute theo bộ matilde kyacute tự

Dữ liệu tự nhiecircn tồn tại khaacutech quan với con người

Matilde hoacutea thocircng tin đầu vagraveo

Matilde hoacutea thocircng tin đầu vagraveo

Thứ tự lưu trữ caacutec byte của dữ liệu

Bộ nhớ chiacutenh thường được tổ chức theo byte Độ dagravei từ dữ liệu coacute thể chiếm từ một đến

nhiều byterArr cần phải biết thứ tự lưu trữ caacutec byte trong bộ nhớ

chiacutenh với caacutec dữ liệu nhiều byte

Thứ tự lưu trữ caacutec byte của dữ liệu

Coacute 2 caacutech lưu trữ Lưu trữ đầu nhỏ (Little-endian) Byte thấp được lưu trữ ở

ngăn nhớ coacute địa chỉ nhỏ hơn byte cao được lưu trữ ở ngăn nhớ coacute địa chỉ lớn hơn

Lưu trữ đầu to (Big-endian) Byte cao được lưu trữ ở ngăn nhớ coacute địa chỉ nhỏ hơn byte thấp được lưu trữ ở ngăn nhớ coacute địa chỉ lớn hơn

Intel 80x86 vagrave caacutec Pentium Little-endianrArr Motorola 680x0 vagrave caacutec bộ xử lyacute RISC Big-endianrArr Power PC vagrave Itanium cả hairArr

33 Biểu diễn số nguyecircn

Coacute hai loại số nguyecircn Số nguyecircn khocircng dấu (Unsigned Integer) Số nguyecircn coacute dấu (Signed Integer)

Biểu diễn số nguyecircn khocircng dấu Dugraveng n bit biểu diễn số nguyecircn khocircng dấu A

an-1an-2hellipa2a1a0

Giaacute trị của A được tiacutenh như sau Dải biểu diễn của A 0 -- 2n-1

Số 8 bit coacute giaacute trị 0 divide 255 Số 16 bit coacute giaacute trị 0 divide 65 535 Số 32 bit coacute giaacute trị 0 divide 4 294 967 295

1

0

2n

i

iiaA

Biểu diễn số nguyecircn khocircng dấun=8 bit

Biểu diễn được caacutec giaacute trị từ 0 đến 255 0000 0000 = 0 Chuacute yacute 0000 0001 = 1 1111 1111 0000 0010 = 2 + 0000 0001 0000 0011 = 3 1 0000 0000 hellip Vậy 255 + 1 = 0 1111 1111 = 255 do tragraven nhớ ra ngoagravei

Biểu diễn số nguyecircn coacute dấu

Số bugrave một vagrave Số bugrave hai Giả sử A lagrave một số nhị phacircn ta coacute Số bugrave một của A nhận được bằng caacutech đảo giaacute trị caacutec bit

của A (Số bugrave hai của A) = (Số bugrave một của A) + 1

Viacute dụ với n= 8 bit Giả sử coacute A = 0010 0101 Số bugrave một của A = 1101 1010

+ 1 Số bugrave hai của A = 1101 1011

Vigrave A + (Số bugrave hai của A) = 0 dugraveng số bugrave hai để biểu diễn cho số acircm

Biểu diễn số nguyecircn coacute dấu

Biểu diễn số nguyecircn coacute dấu bằng matilde bugrave hai Dugraveng n bit biểu diễn số nguyecircn coacute dấu A

an-1an-2hellipa2a1a0

Qui ước chọn bit coacute trọng số cao nhất (MSB) lagravem bit dấu Với A lagrave số dương bit an-1 = 0 caacutec bit cograven lại biểu diễn

độ lớn như số khocircng dấu Với A lagrave số acircm được biểu diễn bằng số bugrave hai của số

dương tương ứng vigrave vậy bit an-1 = 1

Biểu diễn số nguyecircn coacute dấu

Dạng tổng quaacutet của số nguyecircn A

an-1an-2hellipa2a1a0

Giaacute trị của A được xaacutec định như sau

Dải biểu diễn -2n-1 divide 2n-1-1 Số 8 bit coacute dấu coacute giaacute trị -128 divide +127 Số 16 bit coacute dấu coacute giaacute trị -32768 divide +32767

2

0

11 22

n

i

ii

nn aaA

Biểu diễn số nguyecircn coacute dấu n = 8 bit Biểu diễn được caacutec giaacute trị từ -128 đến +127 0000 0000 = 0 0000 0001 = +1 0000 0010 = +2 Chuacute yacute 0000 0011 = +3 +127 + 1 = -128 hellip -128 - 1 = +127 0111 1111 = +127 do tragraven xảy ra 1000 0000 = - 128 1000 0001 = - 127 hellip 1111 1110 = -2 1111 1111 = -1

Biểu diễn số nguyecircn coacute dấu

Chuyển đổi từ byte thagravenh word Đối với số dương

+19 = 0001 0011 (8 bit) +19 = 0000 0000 0001 0011 (16 bit)thecircm 8 bit 0 becircn traacutei

Đối với số acircm - 19 = 1110 1101 (8 bit) - 19 = 1111 1111 1110 1101 (16 bit)thecircm 8 bit 1 becircn traacutei

Với n=32 bit biểu diễn từ -231 đến 231-1 Với n=64 bit biểu diễn từ -263 đến 263-1

Biểu diễn số nguyecircn theo matilde BCD Binary Coded Decimal Code Số BCD được dugraveng để tiacutenh toaacuten trecircn số thập phacircn

trong hệ nhị phacircn Số BCD lagrave số viết theo hệ 16 nhưng giaacute trị tiacutenh theo

hệ 10 Số 12BCD được viết trong hệ 2 lagrave 0001 0010 nhưng coacute giaacute

trị lagrave 12 thay vigrave 18 (1216= 1810) Dugraveng 4 bit để matilde hoaacute cho caacutec chữ số thập phacircn từ 0 đến 9

0 0000 3 0011 6 0110 9 10011 0001 4 0100 7 0111 2 0010 5 0101 8 1000

Coacute 6 tổ hợp khocircng sử dụng 1010 1011 1100 1101 1110 1111

Caacutec kiểu lưu trữ số BCD

BCD khocircng goacutei (Unpacked BCD) Mỗi số BCD 4-bit được lưu trữ trong 4-bit thấp

của mỗi byte Viacute dụ Số 35 được lưu trữ 2 byte

0011 0101

BCD goacutei (Packed BCD) Hai số BCD được lưu trữ trong 1 byte Viacute dụ số 35 được lưu trữ 1 byte

0 0 1 1 0 1 0 1

Thực hiện caacutec pheacutep toaacuten số học với số nguyecircn Pheacutep cộng Pheacutep đảo dấu

Pheacutep đảo dấu trong maacutey tiacutenh thực chất lagrave lấy bugrave 2 Pheacutep trừ Nhacircn số nguyecircn

khocircng dấu coacute dấu

Thuật toaacuten nhacircn nhanh Booth Chia số nguyecircn

khocircng dấu coacute dấu

Số dấu chấm động

Số chấm động (floating point) dugraveng để tiacutenh toaacuten trecircn số thực một số thực X được biểu diễn theo kiểu số dấu chấm động

như sauX = plusmn m Bplusmne

m lagrave phần định trị (Mantissa) B lagrave cơ số (base) e lagrave phần mũ (Exponent)

m (mantissa) quyết định độ chiacutenh xaacutec B (base) e (exponent) quyết định độ lớnnhỏ

Số dấu chấm động

Một giaacute trị coacute thể biểu diễn dưới nhiều dạng Khoacute xử lyacute Cần chuẩn hoacutea

Số chấm động theo chuẩn IEEE 754 Cơ số 2 Coacute 2 dạng

Chiacutenh xaacutec đơn 32 bit độ lệch mũ (bias) 127 Cocircng thức tiacutenh giaacute trị X = (-1)S x 1m x 2e-127

Chiacutenh xaacutec keacutep 64 bit độ lệch mũ (bias) 1023 Cocircng thức tiacutenh giaacute trị X = (-1)S x 1m x 2e-1023

Số chấm động theo chuẩn IEEE 754

Caacutec quy ước đặc biệt

Caacutec bit của e bằng 0 caacutec bit của m bằng 0 thigrave X= plusmn 0 x000 0000 0000 0000 0000 0000 0000 0000 X= plusmn 0

Caacutec bit của e bằng 1 caacutec bit của m bằng 0 thigrave X= plusmn infin x111 1111 1000 0000 0000 0000 0000 0000 1048774 X= plusmn infin

Caacutec bit của e bằng 1 cograven m coacute iacutet nhất 1 bit bằng 1 thigrave noacute khocircng biểu diễn cho số nagraveo cả (NaN ndash not a number)

Biểu diễn kyacute tự

Bộ matilde ASCII (American Standard Code for Information Interchange) Do ANSI (American National Standard Institute)

thiết kế Bộ matilde 8 bit coacute thể matilde hoacutea được 28 =256 kyacute tự

coacute matilde từ 0016 divide FF16 trong đoacute 128 kyacute tự chuẩn coacute matilde từ 0016 divide 7F16 128 kyacute tự mở rộng coacute matilde từ 8016 divide FF16

Bộ matilde Unicode

Bộ matilde ASCII Caacutec kyacute tự chuẩn

26 chữ caacutei hoa lsquoArsquo đến lsquoZrsquo coacute matilde từ 4116 đến 5A16 (65 đến 90) lsquoArsquo 1048774 0100 0001 = 4116 lsquoBrsquo 1048774 0100 0010 = 4216 lsquoZrsquo 1048774 0101 1010 = 5A16

26 chữ caacutei thường lsquoarsquo đến lsquozrsquo coacute matilde từ 6116 đến 7A16 (97 đến 122) lsquoarsquo 1048774 0110 0001 = 6116 lsquobrsquo 1048774 0110 0010 = 6216 lsquozrsquo 1048774 0111 1010 = 7A16

10 chữ số thập phacircn từ 0 đến 9 coacute matilde từ 3016 đến 3916 (48 đến 57) lsquo0rsquo 1048774 0011 0000 = 3016 lsquo1rsquo 1048774 0011 0001 = 3116 lsquo9rsquo 1048774 0011 1001 = 3916

Bộ matilde hợp nhất Unicode

Do caacutec hatildeng maacutey tiacutenh hagraveng đầu thiết kế Bộ matilde 16-bit Bộ matilde đa ngocircn ngữ Coacute hỗ trợ caacutec kyacute tự tiếng Việt

Page 4: Kiến trúc máy tính

Hệ thập phacircn

Hệ thập phacircn

Cơ số 10 10 chữ số 0 1 2 3 4 5 6 7 8 9

Dugraveng n chữ số thập phacircn coacute thể biểu diễn được 10n giaacute trị khaacutec nhau 00000 = 0 99999 = 10n - 1

Hệ thập phacircn

47238 = 4x102 + 7x101 + 2x100 + 3x10-1 + 8x10-2

Caacutec chữ số của phần nguyecircn 472 10 = 47 dư 2 47 10 = 4 dư 7 4 10 = 0 dư 4

Caacutec chữ số của phần lẻ 038 x 10 = 38 phần nguyecircn = 3 08 x 10 = 80 phần nguyecircn = 8

Hệ nhị phacircn

Hệ nhị phacircn

Cơ số 2 2 chữ số nhị phacircn 0 vagrave 1

Chữ số nhị phacircn gọi lagrave bit (binary digit) Bit lagrave đơn vị thocircng tin nhỏ nhất

Dugraveng n bit coacute thể biểu diễn được 2n giaacute trị khaacutec nhau 00000 = 0 11111 = 2n-1

Hệ nhị phacircn

Coacute một số nhị phacircn A như sauA = anan-1a1a0a-1a-m

Giaacute trị của A được tiacutenh như sauA = an2n + an-12n-1 ++ a020 + a-12-1 ++ a-m2-m

Viacute dụ 11010011 0 1 1(2)

6543210-1-2-3-4

= 26 + 25 + 23 + 20 + 2-1 + 2-3 + 2-4

= 64 + 32 + 8 + 1 + 05 + 0125 + 00625

= 1056875(10)

Hệ baacutet phacircn

Hệ thập lục phacircn

Tổng quaacutet

Chuyển đổi caacutec hệ số

Chuyển đổi caacutec hệ số

Phương phaacutep chuyển đổi

Phương phaacutep chuyển đổi

Biểu diễn thocircng tin tronghệ nhị phacircn

BIT (BInary digiT)

0 1 BYTE = tổ hợp 8 bit

01001101 11111111 WORD = tổ hợp nhiều bit

10110 1011100101 1 KiloByte (KB) = 1024 byte = 210 byte 1 MegaByte (MB) = 1024 KB = 220 byte 1 GigaByte (GB) = 1024 MB = 230 byte

32 Matilde hoaacute vagrave lưu trữ dữ liệu trong maacutey tiacutenh

Nguyecircn tắc chung về matilde hoaacute dữ liệu Mọi dữ liệu đưa vagraveo maacutey tiacutenh đều được matilde hoaacute

thagravenh số nhị phacircn Caacutec loại dữ liệu

Dữ liệu nhacircn tạo do con người quy ước Dữ liệu số nguyecircn matilde hoaacute theo một số chuẩnqui ước Dữ liệu số thực matilde hoaacute bằng số dấu chấm động Dữ liệu kyacute tự matilde hoaacute theo bộ matilde kyacute tự

Dữ liệu tự nhiecircn tồn tại khaacutech quan với con người

Matilde hoacutea thocircng tin đầu vagraveo

Matilde hoacutea thocircng tin đầu vagraveo

Thứ tự lưu trữ caacutec byte của dữ liệu

Bộ nhớ chiacutenh thường được tổ chức theo byte Độ dagravei từ dữ liệu coacute thể chiếm từ một đến

nhiều byterArr cần phải biết thứ tự lưu trữ caacutec byte trong bộ nhớ

chiacutenh với caacutec dữ liệu nhiều byte

Thứ tự lưu trữ caacutec byte của dữ liệu

Coacute 2 caacutech lưu trữ Lưu trữ đầu nhỏ (Little-endian) Byte thấp được lưu trữ ở

ngăn nhớ coacute địa chỉ nhỏ hơn byte cao được lưu trữ ở ngăn nhớ coacute địa chỉ lớn hơn

Lưu trữ đầu to (Big-endian) Byte cao được lưu trữ ở ngăn nhớ coacute địa chỉ nhỏ hơn byte thấp được lưu trữ ở ngăn nhớ coacute địa chỉ lớn hơn

Intel 80x86 vagrave caacutec Pentium Little-endianrArr Motorola 680x0 vagrave caacutec bộ xử lyacute RISC Big-endianrArr Power PC vagrave Itanium cả hairArr

33 Biểu diễn số nguyecircn

Coacute hai loại số nguyecircn Số nguyecircn khocircng dấu (Unsigned Integer) Số nguyecircn coacute dấu (Signed Integer)

Biểu diễn số nguyecircn khocircng dấu Dugraveng n bit biểu diễn số nguyecircn khocircng dấu A

an-1an-2hellipa2a1a0

Giaacute trị của A được tiacutenh như sau Dải biểu diễn của A 0 -- 2n-1

Số 8 bit coacute giaacute trị 0 divide 255 Số 16 bit coacute giaacute trị 0 divide 65 535 Số 32 bit coacute giaacute trị 0 divide 4 294 967 295

1

0

2n

i

iiaA

Biểu diễn số nguyecircn khocircng dấun=8 bit

Biểu diễn được caacutec giaacute trị từ 0 đến 255 0000 0000 = 0 Chuacute yacute 0000 0001 = 1 1111 1111 0000 0010 = 2 + 0000 0001 0000 0011 = 3 1 0000 0000 hellip Vậy 255 + 1 = 0 1111 1111 = 255 do tragraven nhớ ra ngoagravei

Biểu diễn số nguyecircn coacute dấu

Số bugrave một vagrave Số bugrave hai Giả sử A lagrave một số nhị phacircn ta coacute Số bugrave một của A nhận được bằng caacutech đảo giaacute trị caacutec bit

của A (Số bugrave hai của A) = (Số bugrave một của A) + 1

Viacute dụ với n= 8 bit Giả sử coacute A = 0010 0101 Số bugrave một của A = 1101 1010

+ 1 Số bugrave hai của A = 1101 1011

Vigrave A + (Số bugrave hai của A) = 0 dugraveng số bugrave hai để biểu diễn cho số acircm

Biểu diễn số nguyecircn coacute dấu

Biểu diễn số nguyecircn coacute dấu bằng matilde bugrave hai Dugraveng n bit biểu diễn số nguyecircn coacute dấu A

an-1an-2hellipa2a1a0

Qui ước chọn bit coacute trọng số cao nhất (MSB) lagravem bit dấu Với A lagrave số dương bit an-1 = 0 caacutec bit cograven lại biểu diễn

độ lớn như số khocircng dấu Với A lagrave số acircm được biểu diễn bằng số bugrave hai của số

dương tương ứng vigrave vậy bit an-1 = 1

Biểu diễn số nguyecircn coacute dấu

Dạng tổng quaacutet của số nguyecircn A

an-1an-2hellipa2a1a0

Giaacute trị của A được xaacutec định như sau

Dải biểu diễn -2n-1 divide 2n-1-1 Số 8 bit coacute dấu coacute giaacute trị -128 divide +127 Số 16 bit coacute dấu coacute giaacute trị -32768 divide +32767

2

0

11 22

n

i

ii

nn aaA

Biểu diễn số nguyecircn coacute dấu n = 8 bit Biểu diễn được caacutec giaacute trị từ -128 đến +127 0000 0000 = 0 0000 0001 = +1 0000 0010 = +2 Chuacute yacute 0000 0011 = +3 +127 + 1 = -128 hellip -128 - 1 = +127 0111 1111 = +127 do tragraven xảy ra 1000 0000 = - 128 1000 0001 = - 127 hellip 1111 1110 = -2 1111 1111 = -1

Biểu diễn số nguyecircn coacute dấu

Chuyển đổi từ byte thagravenh word Đối với số dương

+19 = 0001 0011 (8 bit) +19 = 0000 0000 0001 0011 (16 bit)thecircm 8 bit 0 becircn traacutei

Đối với số acircm - 19 = 1110 1101 (8 bit) - 19 = 1111 1111 1110 1101 (16 bit)thecircm 8 bit 1 becircn traacutei

Với n=32 bit biểu diễn từ -231 đến 231-1 Với n=64 bit biểu diễn từ -263 đến 263-1

Biểu diễn số nguyecircn theo matilde BCD Binary Coded Decimal Code Số BCD được dugraveng để tiacutenh toaacuten trecircn số thập phacircn

trong hệ nhị phacircn Số BCD lagrave số viết theo hệ 16 nhưng giaacute trị tiacutenh theo

hệ 10 Số 12BCD được viết trong hệ 2 lagrave 0001 0010 nhưng coacute giaacute

trị lagrave 12 thay vigrave 18 (1216= 1810) Dugraveng 4 bit để matilde hoaacute cho caacutec chữ số thập phacircn từ 0 đến 9

0 0000 3 0011 6 0110 9 10011 0001 4 0100 7 0111 2 0010 5 0101 8 1000

Coacute 6 tổ hợp khocircng sử dụng 1010 1011 1100 1101 1110 1111

Caacutec kiểu lưu trữ số BCD

BCD khocircng goacutei (Unpacked BCD) Mỗi số BCD 4-bit được lưu trữ trong 4-bit thấp

của mỗi byte Viacute dụ Số 35 được lưu trữ 2 byte

0011 0101

BCD goacutei (Packed BCD) Hai số BCD được lưu trữ trong 1 byte Viacute dụ số 35 được lưu trữ 1 byte

0 0 1 1 0 1 0 1

Thực hiện caacutec pheacutep toaacuten số học với số nguyecircn Pheacutep cộng Pheacutep đảo dấu

Pheacutep đảo dấu trong maacutey tiacutenh thực chất lagrave lấy bugrave 2 Pheacutep trừ Nhacircn số nguyecircn

khocircng dấu coacute dấu

Thuật toaacuten nhacircn nhanh Booth Chia số nguyecircn

khocircng dấu coacute dấu

Số dấu chấm động

Số chấm động (floating point) dugraveng để tiacutenh toaacuten trecircn số thực một số thực X được biểu diễn theo kiểu số dấu chấm động

như sauX = plusmn m Bplusmne

m lagrave phần định trị (Mantissa) B lagrave cơ số (base) e lagrave phần mũ (Exponent)

m (mantissa) quyết định độ chiacutenh xaacutec B (base) e (exponent) quyết định độ lớnnhỏ

Số dấu chấm động

Một giaacute trị coacute thể biểu diễn dưới nhiều dạng Khoacute xử lyacute Cần chuẩn hoacutea

Số chấm động theo chuẩn IEEE 754 Cơ số 2 Coacute 2 dạng

Chiacutenh xaacutec đơn 32 bit độ lệch mũ (bias) 127 Cocircng thức tiacutenh giaacute trị X = (-1)S x 1m x 2e-127

Chiacutenh xaacutec keacutep 64 bit độ lệch mũ (bias) 1023 Cocircng thức tiacutenh giaacute trị X = (-1)S x 1m x 2e-1023

Số chấm động theo chuẩn IEEE 754

Caacutec quy ước đặc biệt

Caacutec bit của e bằng 0 caacutec bit của m bằng 0 thigrave X= plusmn 0 x000 0000 0000 0000 0000 0000 0000 0000 X= plusmn 0

Caacutec bit của e bằng 1 caacutec bit của m bằng 0 thigrave X= plusmn infin x111 1111 1000 0000 0000 0000 0000 0000 1048774 X= plusmn infin

Caacutec bit của e bằng 1 cograven m coacute iacutet nhất 1 bit bằng 1 thigrave noacute khocircng biểu diễn cho số nagraveo cả (NaN ndash not a number)

Biểu diễn kyacute tự

Bộ matilde ASCII (American Standard Code for Information Interchange) Do ANSI (American National Standard Institute)

thiết kế Bộ matilde 8 bit coacute thể matilde hoacutea được 28 =256 kyacute tự

coacute matilde từ 0016 divide FF16 trong đoacute 128 kyacute tự chuẩn coacute matilde từ 0016 divide 7F16 128 kyacute tự mở rộng coacute matilde từ 8016 divide FF16

Bộ matilde Unicode

Bộ matilde ASCII Caacutec kyacute tự chuẩn

26 chữ caacutei hoa lsquoArsquo đến lsquoZrsquo coacute matilde từ 4116 đến 5A16 (65 đến 90) lsquoArsquo 1048774 0100 0001 = 4116 lsquoBrsquo 1048774 0100 0010 = 4216 lsquoZrsquo 1048774 0101 1010 = 5A16

26 chữ caacutei thường lsquoarsquo đến lsquozrsquo coacute matilde từ 6116 đến 7A16 (97 đến 122) lsquoarsquo 1048774 0110 0001 = 6116 lsquobrsquo 1048774 0110 0010 = 6216 lsquozrsquo 1048774 0111 1010 = 7A16

10 chữ số thập phacircn từ 0 đến 9 coacute matilde từ 3016 đến 3916 (48 đến 57) lsquo0rsquo 1048774 0011 0000 = 3016 lsquo1rsquo 1048774 0011 0001 = 3116 lsquo9rsquo 1048774 0011 1001 = 3916

Bộ matilde hợp nhất Unicode

Do caacutec hatildeng maacutey tiacutenh hagraveng đầu thiết kế Bộ matilde 16-bit Bộ matilde đa ngocircn ngữ Coacute hỗ trợ caacutec kyacute tự tiếng Việt

Page 5: Kiến trúc máy tính

Hệ thập phacircn

Cơ số 10 10 chữ số 0 1 2 3 4 5 6 7 8 9

Dugraveng n chữ số thập phacircn coacute thể biểu diễn được 10n giaacute trị khaacutec nhau 00000 = 0 99999 = 10n - 1

Hệ thập phacircn

47238 = 4x102 + 7x101 + 2x100 + 3x10-1 + 8x10-2

Caacutec chữ số của phần nguyecircn 472 10 = 47 dư 2 47 10 = 4 dư 7 4 10 = 0 dư 4

Caacutec chữ số của phần lẻ 038 x 10 = 38 phần nguyecircn = 3 08 x 10 = 80 phần nguyecircn = 8

Hệ nhị phacircn

Hệ nhị phacircn

Cơ số 2 2 chữ số nhị phacircn 0 vagrave 1

Chữ số nhị phacircn gọi lagrave bit (binary digit) Bit lagrave đơn vị thocircng tin nhỏ nhất

Dugraveng n bit coacute thể biểu diễn được 2n giaacute trị khaacutec nhau 00000 = 0 11111 = 2n-1

Hệ nhị phacircn

Coacute một số nhị phacircn A như sauA = anan-1a1a0a-1a-m

Giaacute trị của A được tiacutenh như sauA = an2n + an-12n-1 ++ a020 + a-12-1 ++ a-m2-m

Viacute dụ 11010011 0 1 1(2)

6543210-1-2-3-4

= 26 + 25 + 23 + 20 + 2-1 + 2-3 + 2-4

= 64 + 32 + 8 + 1 + 05 + 0125 + 00625

= 1056875(10)

Hệ baacutet phacircn

Hệ thập lục phacircn

Tổng quaacutet

Chuyển đổi caacutec hệ số

Chuyển đổi caacutec hệ số

Phương phaacutep chuyển đổi

Phương phaacutep chuyển đổi

Biểu diễn thocircng tin tronghệ nhị phacircn

BIT (BInary digiT)

0 1 BYTE = tổ hợp 8 bit

01001101 11111111 WORD = tổ hợp nhiều bit

10110 1011100101 1 KiloByte (KB) = 1024 byte = 210 byte 1 MegaByte (MB) = 1024 KB = 220 byte 1 GigaByte (GB) = 1024 MB = 230 byte

32 Matilde hoaacute vagrave lưu trữ dữ liệu trong maacutey tiacutenh

Nguyecircn tắc chung về matilde hoaacute dữ liệu Mọi dữ liệu đưa vagraveo maacutey tiacutenh đều được matilde hoaacute

thagravenh số nhị phacircn Caacutec loại dữ liệu

Dữ liệu nhacircn tạo do con người quy ước Dữ liệu số nguyecircn matilde hoaacute theo một số chuẩnqui ước Dữ liệu số thực matilde hoaacute bằng số dấu chấm động Dữ liệu kyacute tự matilde hoaacute theo bộ matilde kyacute tự

Dữ liệu tự nhiecircn tồn tại khaacutech quan với con người

Matilde hoacutea thocircng tin đầu vagraveo

Matilde hoacutea thocircng tin đầu vagraveo

Thứ tự lưu trữ caacutec byte của dữ liệu

Bộ nhớ chiacutenh thường được tổ chức theo byte Độ dagravei từ dữ liệu coacute thể chiếm từ một đến

nhiều byterArr cần phải biết thứ tự lưu trữ caacutec byte trong bộ nhớ

chiacutenh với caacutec dữ liệu nhiều byte

Thứ tự lưu trữ caacutec byte của dữ liệu

Coacute 2 caacutech lưu trữ Lưu trữ đầu nhỏ (Little-endian) Byte thấp được lưu trữ ở

ngăn nhớ coacute địa chỉ nhỏ hơn byte cao được lưu trữ ở ngăn nhớ coacute địa chỉ lớn hơn

Lưu trữ đầu to (Big-endian) Byte cao được lưu trữ ở ngăn nhớ coacute địa chỉ nhỏ hơn byte thấp được lưu trữ ở ngăn nhớ coacute địa chỉ lớn hơn

Intel 80x86 vagrave caacutec Pentium Little-endianrArr Motorola 680x0 vagrave caacutec bộ xử lyacute RISC Big-endianrArr Power PC vagrave Itanium cả hairArr

33 Biểu diễn số nguyecircn

Coacute hai loại số nguyecircn Số nguyecircn khocircng dấu (Unsigned Integer) Số nguyecircn coacute dấu (Signed Integer)

Biểu diễn số nguyecircn khocircng dấu Dugraveng n bit biểu diễn số nguyecircn khocircng dấu A

an-1an-2hellipa2a1a0

Giaacute trị của A được tiacutenh như sau Dải biểu diễn của A 0 -- 2n-1

Số 8 bit coacute giaacute trị 0 divide 255 Số 16 bit coacute giaacute trị 0 divide 65 535 Số 32 bit coacute giaacute trị 0 divide 4 294 967 295

1

0

2n

i

iiaA

Biểu diễn số nguyecircn khocircng dấun=8 bit

Biểu diễn được caacutec giaacute trị từ 0 đến 255 0000 0000 = 0 Chuacute yacute 0000 0001 = 1 1111 1111 0000 0010 = 2 + 0000 0001 0000 0011 = 3 1 0000 0000 hellip Vậy 255 + 1 = 0 1111 1111 = 255 do tragraven nhớ ra ngoagravei

Biểu diễn số nguyecircn coacute dấu

Số bugrave một vagrave Số bugrave hai Giả sử A lagrave một số nhị phacircn ta coacute Số bugrave một của A nhận được bằng caacutech đảo giaacute trị caacutec bit

của A (Số bugrave hai của A) = (Số bugrave một của A) + 1

Viacute dụ với n= 8 bit Giả sử coacute A = 0010 0101 Số bugrave một của A = 1101 1010

+ 1 Số bugrave hai của A = 1101 1011

Vigrave A + (Số bugrave hai của A) = 0 dugraveng số bugrave hai để biểu diễn cho số acircm

Biểu diễn số nguyecircn coacute dấu

Biểu diễn số nguyecircn coacute dấu bằng matilde bugrave hai Dugraveng n bit biểu diễn số nguyecircn coacute dấu A

an-1an-2hellipa2a1a0

Qui ước chọn bit coacute trọng số cao nhất (MSB) lagravem bit dấu Với A lagrave số dương bit an-1 = 0 caacutec bit cograven lại biểu diễn

độ lớn như số khocircng dấu Với A lagrave số acircm được biểu diễn bằng số bugrave hai của số

dương tương ứng vigrave vậy bit an-1 = 1

Biểu diễn số nguyecircn coacute dấu

Dạng tổng quaacutet của số nguyecircn A

an-1an-2hellipa2a1a0

Giaacute trị của A được xaacutec định như sau

Dải biểu diễn -2n-1 divide 2n-1-1 Số 8 bit coacute dấu coacute giaacute trị -128 divide +127 Số 16 bit coacute dấu coacute giaacute trị -32768 divide +32767

2

0

11 22

n

i

ii

nn aaA

Biểu diễn số nguyecircn coacute dấu n = 8 bit Biểu diễn được caacutec giaacute trị từ -128 đến +127 0000 0000 = 0 0000 0001 = +1 0000 0010 = +2 Chuacute yacute 0000 0011 = +3 +127 + 1 = -128 hellip -128 - 1 = +127 0111 1111 = +127 do tragraven xảy ra 1000 0000 = - 128 1000 0001 = - 127 hellip 1111 1110 = -2 1111 1111 = -1

Biểu diễn số nguyecircn coacute dấu

Chuyển đổi từ byte thagravenh word Đối với số dương

+19 = 0001 0011 (8 bit) +19 = 0000 0000 0001 0011 (16 bit)thecircm 8 bit 0 becircn traacutei

Đối với số acircm - 19 = 1110 1101 (8 bit) - 19 = 1111 1111 1110 1101 (16 bit)thecircm 8 bit 1 becircn traacutei

Với n=32 bit biểu diễn từ -231 đến 231-1 Với n=64 bit biểu diễn từ -263 đến 263-1

Biểu diễn số nguyecircn theo matilde BCD Binary Coded Decimal Code Số BCD được dugraveng để tiacutenh toaacuten trecircn số thập phacircn

trong hệ nhị phacircn Số BCD lagrave số viết theo hệ 16 nhưng giaacute trị tiacutenh theo

hệ 10 Số 12BCD được viết trong hệ 2 lagrave 0001 0010 nhưng coacute giaacute

trị lagrave 12 thay vigrave 18 (1216= 1810) Dugraveng 4 bit để matilde hoaacute cho caacutec chữ số thập phacircn từ 0 đến 9

0 0000 3 0011 6 0110 9 10011 0001 4 0100 7 0111 2 0010 5 0101 8 1000

Coacute 6 tổ hợp khocircng sử dụng 1010 1011 1100 1101 1110 1111

Caacutec kiểu lưu trữ số BCD

BCD khocircng goacutei (Unpacked BCD) Mỗi số BCD 4-bit được lưu trữ trong 4-bit thấp

của mỗi byte Viacute dụ Số 35 được lưu trữ 2 byte

0011 0101

BCD goacutei (Packed BCD) Hai số BCD được lưu trữ trong 1 byte Viacute dụ số 35 được lưu trữ 1 byte

0 0 1 1 0 1 0 1

Thực hiện caacutec pheacutep toaacuten số học với số nguyecircn Pheacutep cộng Pheacutep đảo dấu

Pheacutep đảo dấu trong maacutey tiacutenh thực chất lagrave lấy bugrave 2 Pheacutep trừ Nhacircn số nguyecircn

khocircng dấu coacute dấu

Thuật toaacuten nhacircn nhanh Booth Chia số nguyecircn

khocircng dấu coacute dấu

Số dấu chấm động

Số chấm động (floating point) dugraveng để tiacutenh toaacuten trecircn số thực một số thực X được biểu diễn theo kiểu số dấu chấm động

như sauX = plusmn m Bplusmne

m lagrave phần định trị (Mantissa) B lagrave cơ số (base) e lagrave phần mũ (Exponent)

m (mantissa) quyết định độ chiacutenh xaacutec B (base) e (exponent) quyết định độ lớnnhỏ

Số dấu chấm động

Một giaacute trị coacute thể biểu diễn dưới nhiều dạng Khoacute xử lyacute Cần chuẩn hoacutea

Số chấm động theo chuẩn IEEE 754 Cơ số 2 Coacute 2 dạng

Chiacutenh xaacutec đơn 32 bit độ lệch mũ (bias) 127 Cocircng thức tiacutenh giaacute trị X = (-1)S x 1m x 2e-127

Chiacutenh xaacutec keacutep 64 bit độ lệch mũ (bias) 1023 Cocircng thức tiacutenh giaacute trị X = (-1)S x 1m x 2e-1023

Số chấm động theo chuẩn IEEE 754

Caacutec quy ước đặc biệt

Caacutec bit của e bằng 0 caacutec bit của m bằng 0 thigrave X= plusmn 0 x000 0000 0000 0000 0000 0000 0000 0000 X= plusmn 0

Caacutec bit của e bằng 1 caacutec bit của m bằng 0 thigrave X= plusmn infin x111 1111 1000 0000 0000 0000 0000 0000 1048774 X= plusmn infin

Caacutec bit của e bằng 1 cograven m coacute iacutet nhất 1 bit bằng 1 thigrave noacute khocircng biểu diễn cho số nagraveo cả (NaN ndash not a number)

Biểu diễn kyacute tự

Bộ matilde ASCII (American Standard Code for Information Interchange) Do ANSI (American National Standard Institute)

thiết kế Bộ matilde 8 bit coacute thể matilde hoacutea được 28 =256 kyacute tự

coacute matilde từ 0016 divide FF16 trong đoacute 128 kyacute tự chuẩn coacute matilde từ 0016 divide 7F16 128 kyacute tự mở rộng coacute matilde từ 8016 divide FF16

Bộ matilde Unicode

Bộ matilde ASCII Caacutec kyacute tự chuẩn

26 chữ caacutei hoa lsquoArsquo đến lsquoZrsquo coacute matilde từ 4116 đến 5A16 (65 đến 90) lsquoArsquo 1048774 0100 0001 = 4116 lsquoBrsquo 1048774 0100 0010 = 4216 lsquoZrsquo 1048774 0101 1010 = 5A16

26 chữ caacutei thường lsquoarsquo đến lsquozrsquo coacute matilde từ 6116 đến 7A16 (97 đến 122) lsquoarsquo 1048774 0110 0001 = 6116 lsquobrsquo 1048774 0110 0010 = 6216 lsquozrsquo 1048774 0111 1010 = 7A16

10 chữ số thập phacircn từ 0 đến 9 coacute matilde từ 3016 đến 3916 (48 đến 57) lsquo0rsquo 1048774 0011 0000 = 3016 lsquo1rsquo 1048774 0011 0001 = 3116 lsquo9rsquo 1048774 0011 1001 = 3916

Bộ matilde hợp nhất Unicode

Do caacutec hatildeng maacutey tiacutenh hagraveng đầu thiết kế Bộ matilde 16-bit Bộ matilde đa ngocircn ngữ Coacute hỗ trợ caacutec kyacute tự tiếng Việt

Page 6: Kiến trúc máy tính

Hệ thập phacircn

47238 = 4x102 + 7x101 + 2x100 + 3x10-1 + 8x10-2

Caacutec chữ số của phần nguyecircn 472 10 = 47 dư 2 47 10 = 4 dư 7 4 10 = 0 dư 4

Caacutec chữ số của phần lẻ 038 x 10 = 38 phần nguyecircn = 3 08 x 10 = 80 phần nguyecircn = 8

Hệ nhị phacircn

Hệ nhị phacircn

Cơ số 2 2 chữ số nhị phacircn 0 vagrave 1

Chữ số nhị phacircn gọi lagrave bit (binary digit) Bit lagrave đơn vị thocircng tin nhỏ nhất

Dugraveng n bit coacute thể biểu diễn được 2n giaacute trị khaacutec nhau 00000 = 0 11111 = 2n-1

Hệ nhị phacircn

Coacute một số nhị phacircn A như sauA = anan-1a1a0a-1a-m

Giaacute trị của A được tiacutenh như sauA = an2n + an-12n-1 ++ a020 + a-12-1 ++ a-m2-m

Viacute dụ 11010011 0 1 1(2)

6543210-1-2-3-4

= 26 + 25 + 23 + 20 + 2-1 + 2-3 + 2-4

= 64 + 32 + 8 + 1 + 05 + 0125 + 00625

= 1056875(10)

Hệ baacutet phacircn

Hệ thập lục phacircn

Tổng quaacutet

Chuyển đổi caacutec hệ số

Chuyển đổi caacutec hệ số

Phương phaacutep chuyển đổi

Phương phaacutep chuyển đổi

Biểu diễn thocircng tin tronghệ nhị phacircn

BIT (BInary digiT)

0 1 BYTE = tổ hợp 8 bit

01001101 11111111 WORD = tổ hợp nhiều bit

10110 1011100101 1 KiloByte (KB) = 1024 byte = 210 byte 1 MegaByte (MB) = 1024 KB = 220 byte 1 GigaByte (GB) = 1024 MB = 230 byte

32 Matilde hoaacute vagrave lưu trữ dữ liệu trong maacutey tiacutenh

Nguyecircn tắc chung về matilde hoaacute dữ liệu Mọi dữ liệu đưa vagraveo maacutey tiacutenh đều được matilde hoaacute

thagravenh số nhị phacircn Caacutec loại dữ liệu

Dữ liệu nhacircn tạo do con người quy ước Dữ liệu số nguyecircn matilde hoaacute theo một số chuẩnqui ước Dữ liệu số thực matilde hoaacute bằng số dấu chấm động Dữ liệu kyacute tự matilde hoaacute theo bộ matilde kyacute tự

Dữ liệu tự nhiecircn tồn tại khaacutech quan với con người

Matilde hoacutea thocircng tin đầu vagraveo

Matilde hoacutea thocircng tin đầu vagraveo

Thứ tự lưu trữ caacutec byte của dữ liệu

Bộ nhớ chiacutenh thường được tổ chức theo byte Độ dagravei từ dữ liệu coacute thể chiếm từ một đến

nhiều byterArr cần phải biết thứ tự lưu trữ caacutec byte trong bộ nhớ

chiacutenh với caacutec dữ liệu nhiều byte

Thứ tự lưu trữ caacutec byte của dữ liệu

Coacute 2 caacutech lưu trữ Lưu trữ đầu nhỏ (Little-endian) Byte thấp được lưu trữ ở

ngăn nhớ coacute địa chỉ nhỏ hơn byte cao được lưu trữ ở ngăn nhớ coacute địa chỉ lớn hơn

Lưu trữ đầu to (Big-endian) Byte cao được lưu trữ ở ngăn nhớ coacute địa chỉ nhỏ hơn byte thấp được lưu trữ ở ngăn nhớ coacute địa chỉ lớn hơn

Intel 80x86 vagrave caacutec Pentium Little-endianrArr Motorola 680x0 vagrave caacutec bộ xử lyacute RISC Big-endianrArr Power PC vagrave Itanium cả hairArr

33 Biểu diễn số nguyecircn

Coacute hai loại số nguyecircn Số nguyecircn khocircng dấu (Unsigned Integer) Số nguyecircn coacute dấu (Signed Integer)

Biểu diễn số nguyecircn khocircng dấu Dugraveng n bit biểu diễn số nguyecircn khocircng dấu A

an-1an-2hellipa2a1a0

Giaacute trị của A được tiacutenh như sau Dải biểu diễn của A 0 -- 2n-1

Số 8 bit coacute giaacute trị 0 divide 255 Số 16 bit coacute giaacute trị 0 divide 65 535 Số 32 bit coacute giaacute trị 0 divide 4 294 967 295

1

0

2n

i

iiaA

Biểu diễn số nguyecircn khocircng dấun=8 bit

Biểu diễn được caacutec giaacute trị từ 0 đến 255 0000 0000 = 0 Chuacute yacute 0000 0001 = 1 1111 1111 0000 0010 = 2 + 0000 0001 0000 0011 = 3 1 0000 0000 hellip Vậy 255 + 1 = 0 1111 1111 = 255 do tragraven nhớ ra ngoagravei

Biểu diễn số nguyecircn coacute dấu

Số bugrave một vagrave Số bugrave hai Giả sử A lagrave một số nhị phacircn ta coacute Số bugrave một của A nhận được bằng caacutech đảo giaacute trị caacutec bit

của A (Số bugrave hai của A) = (Số bugrave một của A) + 1

Viacute dụ với n= 8 bit Giả sử coacute A = 0010 0101 Số bugrave một của A = 1101 1010

+ 1 Số bugrave hai của A = 1101 1011

Vigrave A + (Số bugrave hai của A) = 0 dugraveng số bugrave hai để biểu diễn cho số acircm

Biểu diễn số nguyecircn coacute dấu

Biểu diễn số nguyecircn coacute dấu bằng matilde bugrave hai Dugraveng n bit biểu diễn số nguyecircn coacute dấu A

an-1an-2hellipa2a1a0

Qui ước chọn bit coacute trọng số cao nhất (MSB) lagravem bit dấu Với A lagrave số dương bit an-1 = 0 caacutec bit cograven lại biểu diễn

độ lớn như số khocircng dấu Với A lagrave số acircm được biểu diễn bằng số bugrave hai của số

dương tương ứng vigrave vậy bit an-1 = 1

Biểu diễn số nguyecircn coacute dấu

Dạng tổng quaacutet của số nguyecircn A

an-1an-2hellipa2a1a0

Giaacute trị của A được xaacutec định như sau

Dải biểu diễn -2n-1 divide 2n-1-1 Số 8 bit coacute dấu coacute giaacute trị -128 divide +127 Số 16 bit coacute dấu coacute giaacute trị -32768 divide +32767

2

0

11 22

n

i

ii

nn aaA

Biểu diễn số nguyecircn coacute dấu n = 8 bit Biểu diễn được caacutec giaacute trị từ -128 đến +127 0000 0000 = 0 0000 0001 = +1 0000 0010 = +2 Chuacute yacute 0000 0011 = +3 +127 + 1 = -128 hellip -128 - 1 = +127 0111 1111 = +127 do tragraven xảy ra 1000 0000 = - 128 1000 0001 = - 127 hellip 1111 1110 = -2 1111 1111 = -1

Biểu diễn số nguyecircn coacute dấu

Chuyển đổi từ byte thagravenh word Đối với số dương

+19 = 0001 0011 (8 bit) +19 = 0000 0000 0001 0011 (16 bit)thecircm 8 bit 0 becircn traacutei

Đối với số acircm - 19 = 1110 1101 (8 bit) - 19 = 1111 1111 1110 1101 (16 bit)thecircm 8 bit 1 becircn traacutei

Với n=32 bit biểu diễn từ -231 đến 231-1 Với n=64 bit biểu diễn từ -263 đến 263-1

Biểu diễn số nguyecircn theo matilde BCD Binary Coded Decimal Code Số BCD được dugraveng để tiacutenh toaacuten trecircn số thập phacircn

trong hệ nhị phacircn Số BCD lagrave số viết theo hệ 16 nhưng giaacute trị tiacutenh theo

hệ 10 Số 12BCD được viết trong hệ 2 lagrave 0001 0010 nhưng coacute giaacute

trị lagrave 12 thay vigrave 18 (1216= 1810) Dugraveng 4 bit để matilde hoaacute cho caacutec chữ số thập phacircn từ 0 đến 9

0 0000 3 0011 6 0110 9 10011 0001 4 0100 7 0111 2 0010 5 0101 8 1000

Coacute 6 tổ hợp khocircng sử dụng 1010 1011 1100 1101 1110 1111

Caacutec kiểu lưu trữ số BCD

BCD khocircng goacutei (Unpacked BCD) Mỗi số BCD 4-bit được lưu trữ trong 4-bit thấp

của mỗi byte Viacute dụ Số 35 được lưu trữ 2 byte

0011 0101

BCD goacutei (Packed BCD) Hai số BCD được lưu trữ trong 1 byte Viacute dụ số 35 được lưu trữ 1 byte

0 0 1 1 0 1 0 1

Thực hiện caacutec pheacutep toaacuten số học với số nguyecircn Pheacutep cộng Pheacutep đảo dấu

Pheacutep đảo dấu trong maacutey tiacutenh thực chất lagrave lấy bugrave 2 Pheacutep trừ Nhacircn số nguyecircn

khocircng dấu coacute dấu

Thuật toaacuten nhacircn nhanh Booth Chia số nguyecircn

khocircng dấu coacute dấu

Số dấu chấm động

Số chấm động (floating point) dugraveng để tiacutenh toaacuten trecircn số thực một số thực X được biểu diễn theo kiểu số dấu chấm động

như sauX = plusmn m Bplusmne

m lagrave phần định trị (Mantissa) B lagrave cơ số (base) e lagrave phần mũ (Exponent)

m (mantissa) quyết định độ chiacutenh xaacutec B (base) e (exponent) quyết định độ lớnnhỏ

Số dấu chấm động

Một giaacute trị coacute thể biểu diễn dưới nhiều dạng Khoacute xử lyacute Cần chuẩn hoacutea

Số chấm động theo chuẩn IEEE 754 Cơ số 2 Coacute 2 dạng

Chiacutenh xaacutec đơn 32 bit độ lệch mũ (bias) 127 Cocircng thức tiacutenh giaacute trị X = (-1)S x 1m x 2e-127

Chiacutenh xaacutec keacutep 64 bit độ lệch mũ (bias) 1023 Cocircng thức tiacutenh giaacute trị X = (-1)S x 1m x 2e-1023

Số chấm động theo chuẩn IEEE 754

Caacutec quy ước đặc biệt

Caacutec bit của e bằng 0 caacutec bit của m bằng 0 thigrave X= plusmn 0 x000 0000 0000 0000 0000 0000 0000 0000 X= plusmn 0

Caacutec bit của e bằng 1 caacutec bit của m bằng 0 thigrave X= plusmn infin x111 1111 1000 0000 0000 0000 0000 0000 1048774 X= plusmn infin

Caacutec bit của e bằng 1 cograven m coacute iacutet nhất 1 bit bằng 1 thigrave noacute khocircng biểu diễn cho số nagraveo cả (NaN ndash not a number)

Biểu diễn kyacute tự

Bộ matilde ASCII (American Standard Code for Information Interchange) Do ANSI (American National Standard Institute)

thiết kế Bộ matilde 8 bit coacute thể matilde hoacutea được 28 =256 kyacute tự

coacute matilde từ 0016 divide FF16 trong đoacute 128 kyacute tự chuẩn coacute matilde từ 0016 divide 7F16 128 kyacute tự mở rộng coacute matilde từ 8016 divide FF16

Bộ matilde Unicode

Bộ matilde ASCII Caacutec kyacute tự chuẩn

26 chữ caacutei hoa lsquoArsquo đến lsquoZrsquo coacute matilde từ 4116 đến 5A16 (65 đến 90) lsquoArsquo 1048774 0100 0001 = 4116 lsquoBrsquo 1048774 0100 0010 = 4216 lsquoZrsquo 1048774 0101 1010 = 5A16

26 chữ caacutei thường lsquoarsquo đến lsquozrsquo coacute matilde từ 6116 đến 7A16 (97 đến 122) lsquoarsquo 1048774 0110 0001 = 6116 lsquobrsquo 1048774 0110 0010 = 6216 lsquozrsquo 1048774 0111 1010 = 7A16

10 chữ số thập phacircn từ 0 đến 9 coacute matilde từ 3016 đến 3916 (48 đến 57) lsquo0rsquo 1048774 0011 0000 = 3016 lsquo1rsquo 1048774 0011 0001 = 3116 lsquo9rsquo 1048774 0011 1001 = 3916

Bộ matilde hợp nhất Unicode

Do caacutec hatildeng maacutey tiacutenh hagraveng đầu thiết kế Bộ matilde 16-bit Bộ matilde đa ngocircn ngữ Coacute hỗ trợ caacutec kyacute tự tiếng Việt

Page 7: Kiến trúc máy tính

Hệ nhị phacircn

Hệ nhị phacircn

Cơ số 2 2 chữ số nhị phacircn 0 vagrave 1

Chữ số nhị phacircn gọi lagrave bit (binary digit) Bit lagrave đơn vị thocircng tin nhỏ nhất

Dugraveng n bit coacute thể biểu diễn được 2n giaacute trị khaacutec nhau 00000 = 0 11111 = 2n-1

Hệ nhị phacircn

Coacute một số nhị phacircn A như sauA = anan-1a1a0a-1a-m

Giaacute trị của A được tiacutenh như sauA = an2n + an-12n-1 ++ a020 + a-12-1 ++ a-m2-m

Viacute dụ 11010011 0 1 1(2)

6543210-1-2-3-4

= 26 + 25 + 23 + 20 + 2-1 + 2-3 + 2-4

= 64 + 32 + 8 + 1 + 05 + 0125 + 00625

= 1056875(10)

Hệ baacutet phacircn

Hệ thập lục phacircn

Tổng quaacutet

Chuyển đổi caacutec hệ số

Chuyển đổi caacutec hệ số

Phương phaacutep chuyển đổi

Phương phaacutep chuyển đổi

Biểu diễn thocircng tin tronghệ nhị phacircn

BIT (BInary digiT)

0 1 BYTE = tổ hợp 8 bit

01001101 11111111 WORD = tổ hợp nhiều bit

10110 1011100101 1 KiloByte (KB) = 1024 byte = 210 byte 1 MegaByte (MB) = 1024 KB = 220 byte 1 GigaByte (GB) = 1024 MB = 230 byte

32 Matilde hoaacute vagrave lưu trữ dữ liệu trong maacutey tiacutenh

Nguyecircn tắc chung về matilde hoaacute dữ liệu Mọi dữ liệu đưa vagraveo maacutey tiacutenh đều được matilde hoaacute

thagravenh số nhị phacircn Caacutec loại dữ liệu

Dữ liệu nhacircn tạo do con người quy ước Dữ liệu số nguyecircn matilde hoaacute theo một số chuẩnqui ước Dữ liệu số thực matilde hoaacute bằng số dấu chấm động Dữ liệu kyacute tự matilde hoaacute theo bộ matilde kyacute tự

Dữ liệu tự nhiecircn tồn tại khaacutech quan với con người

Matilde hoacutea thocircng tin đầu vagraveo

Matilde hoacutea thocircng tin đầu vagraveo

Thứ tự lưu trữ caacutec byte của dữ liệu

Bộ nhớ chiacutenh thường được tổ chức theo byte Độ dagravei từ dữ liệu coacute thể chiếm từ một đến

nhiều byterArr cần phải biết thứ tự lưu trữ caacutec byte trong bộ nhớ

chiacutenh với caacutec dữ liệu nhiều byte

Thứ tự lưu trữ caacutec byte của dữ liệu

Coacute 2 caacutech lưu trữ Lưu trữ đầu nhỏ (Little-endian) Byte thấp được lưu trữ ở

ngăn nhớ coacute địa chỉ nhỏ hơn byte cao được lưu trữ ở ngăn nhớ coacute địa chỉ lớn hơn

Lưu trữ đầu to (Big-endian) Byte cao được lưu trữ ở ngăn nhớ coacute địa chỉ nhỏ hơn byte thấp được lưu trữ ở ngăn nhớ coacute địa chỉ lớn hơn

Intel 80x86 vagrave caacutec Pentium Little-endianrArr Motorola 680x0 vagrave caacutec bộ xử lyacute RISC Big-endianrArr Power PC vagrave Itanium cả hairArr

33 Biểu diễn số nguyecircn

Coacute hai loại số nguyecircn Số nguyecircn khocircng dấu (Unsigned Integer) Số nguyecircn coacute dấu (Signed Integer)

Biểu diễn số nguyecircn khocircng dấu Dugraveng n bit biểu diễn số nguyecircn khocircng dấu A

an-1an-2hellipa2a1a0

Giaacute trị của A được tiacutenh như sau Dải biểu diễn của A 0 -- 2n-1

Số 8 bit coacute giaacute trị 0 divide 255 Số 16 bit coacute giaacute trị 0 divide 65 535 Số 32 bit coacute giaacute trị 0 divide 4 294 967 295

1

0

2n

i

iiaA

Biểu diễn số nguyecircn khocircng dấun=8 bit

Biểu diễn được caacutec giaacute trị từ 0 đến 255 0000 0000 = 0 Chuacute yacute 0000 0001 = 1 1111 1111 0000 0010 = 2 + 0000 0001 0000 0011 = 3 1 0000 0000 hellip Vậy 255 + 1 = 0 1111 1111 = 255 do tragraven nhớ ra ngoagravei

Biểu diễn số nguyecircn coacute dấu

Số bugrave một vagrave Số bugrave hai Giả sử A lagrave một số nhị phacircn ta coacute Số bugrave một của A nhận được bằng caacutech đảo giaacute trị caacutec bit

của A (Số bugrave hai của A) = (Số bugrave một của A) + 1

Viacute dụ với n= 8 bit Giả sử coacute A = 0010 0101 Số bugrave một của A = 1101 1010

+ 1 Số bugrave hai của A = 1101 1011

Vigrave A + (Số bugrave hai của A) = 0 dugraveng số bugrave hai để biểu diễn cho số acircm

Biểu diễn số nguyecircn coacute dấu

Biểu diễn số nguyecircn coacute dấu bằng matilde bugrave hai Dugraveng n bit biểu diễn số nguyecircn coacute dấu A

an-1an-2hellipa2a1a0

Qui ước chọn bit coacute trọng số cao nhất (MSB) lagravem bit dấu Với A lagrave số dương bit an-1 = 0 caacutec bit cograven lại biểu diễn

độ lớn như số khocircng dấu Với A lagrave số acircm được biểu diễn bằng số bugrave hai của số

dương tương ứng vigrave vậy bit an-1 = 1

Biểu diễn số nguyecircn coacute dấu

Dạng tổng quaacutet của số nguyecircn A

an-1an-2hellipa2a1a0

Giaacute trị của A được xaacutec định như sau

Dải biểu diễn -2n-1 divide 2n-1-1 Số 8 bit coacute dấu coacute giaacute trị -128 divide +127 Số 16 bit coacute dấu coacute giaacute trị -32768 divide +32767

2

0

11 22

n

i

ii

nn aaA

Biểu diễn số nguyecircn coacute dấu n = 8 bit Biểu diễn được caacutec giaacute trị từ -128 đến +127 0000 0000 = 0 0000 0001 = +1 0000 0010 = +2 Chuacute yacute 0000 0011 = +3 +127 + 1 = -128 hellip -128 - 1 = +127 0111 1111 = +127 do tragraven xảy ra 1000 0000 = - 128 1000 0001 = - 127 hellip 1111 1110 = -2 1111 1111 = -1

Biểu diễn số nguyecircn coacute dấu

Chuyển đổi từ byte thagravenh word Đối với số dương

+19 = 0001 0011 (8 bit) +19 = 0000 0000 0001 0011 (16 bit)thecircm 8 bit 0 becircn traacutei

Đối với số acircm - 19 = 1110 1101 (8 bit) - 19 = 1111 1111 1110 1101 (16 bit)thecircm 8 bit 1 becircn traacutei

Với n=32 bit biểu diễn từ -231 đến 231-1 Với n=64 bit biểu diễn từ -263 đến 263-1

Biểu diễn số nguyecircn theo matilde BCD Binary Coded Decimal Code Số BCD được dugraveng để tiacutenh toaacuten trecircn số thập phacircn

trong hệ nhị phacircn Số BCD lagrave số viết theo hệ 16 nhưng giaacute trị tiacutenh theo

hệ 10 Số 12BCD được viết trong hệ 2 lagrave 0001 0010 nhưng coacute giaacute

trị lagrave 12 thay vigrave 18 (1216= 1810) Dugraveng 4 bit để matilde hoaacute cho caacutec chữ số thập phacircn từ 0 đến 9

0 0000 3 0011 6 0110 9 10011 0001 4 0100 7 0111 2 0010 5 0101 8 1000

Coacute 6 tổ hợp khocircng sử dụng 1010 1011 1100 1101 1110 1111

Caacutec kiểu lưu trữ số BCD

BCD khocircng goacutei (Unpacked BCD) Mỗi số BCD 4-bit được lưu trữ trong 4-bit thấp

của mỗi byte Viacute dụ Số 35 được lưu trữ 2 byte

0011 0101

BCD goacutei (Packed BCD) Hai số BCD được lưu trữ trong 1 byte Viacute dụ số 35 được lưu trữ 1 byte

0 0 1 1 0 1 0 1

Thực hiện caacutec pheacutep toaacuten số học với số nguyecircn Pheacutep cộng Pheacutep đảo dấu

Pheacutep đảo dấu trong maacutey tiacutenh thực chất lagrave lấy bugrave 2 Pheacutep trừ Nhacircn số nguyecircn

khocircng dấu coacute dấu

Thuật toaacuten nhacircn nhanh Booth Chia số nguyecircn

khocircng dấu coacute dấu

Số dấu chấm động

Số chấm động (floating point) dugraveng để tiacutenh toaacuten trecircn số thực một số thực X được biểu diễn theo kiểu số dấu chấm động

như sauX = plusmn m Bplusmne

m lagrave phần định trị (Mantissa) B lagrave cơ số (base) e lagrave phần mũ (Exponent)

m (mantissa) quyết định độ chiacutenh xaacutec B (base) e (exponent) quyết định độ lớnnhỏ

Số dấu chấm động

Một giaacute trị coacute thể biểu diễn dưới nhiều dạng Khoacute xử lyacute Cần chuẩn hoacutea

Số chấm động theo chuẩn IEEE 754 Cơ số 2 Coacute 2 dạng

Chiacutenh xaacutec đơn 32 bit độ lệch mũ (bias) 127 Cocircng thức tiacutenh giaacute trị X = (-1)S x 1m x 2e-127

Chiacutenh xaacutec keacutep 64 bit độ lệch mũ (bias) 1023 Cocircng thức tiacutenh giaacute trị X = (-1)S x 1m x 2e-1023

Số chấm động theo chuẩn IEEE 754

Caacutec quy ước đặc biệt

Caacutec bit của e bằng 0 caacutec bit của m bằng 0 thigrave X= plusmn 0 x000 0000 0000 0000 0000 0000 0000 0000 X= plusmn 0

Caacutec bit của e bằng 1 caacutec bit của m bằng 0 thigrave X= plusmn infin x111 1111 1000 0000 0000 0000 0000 0000 1048774 X= plusmn infin

Caacutec bit của e bằng 1 cograven m coacute iacutet nhất 1 bit bằng 1 thigrave noacute khocircng biểu diễn cho số nagraveo cả (NaN ndash not a number)

Biểu diễn kyacute tự

Bộ matilde ASCII (American Standard Code for Information Interchange) Do ANSI (American National Standard Institute)

thiết kế Bộ matilde 8 bit coacute thể matilde hoacutea được 28 =256 kyacute tự

coacute matilde từ 0016 divide FF16 trong đoacute 128 kyacute tự chuẩn coacute matilde từ 0016 divide 7F16 128 kyacute tự mở rộng coacute matilde từ 8016 divide FF16

Bộ matilde Unicode

Bộ matilde ASCII Caacutec kyacute tự chuẩn

26 chữ caacutei hoa lsquoArsquo đến lsquoZrsquo coacute matilde từ 4116 đến 5A16 (65 đến 90) lsquoArsquo 1048774 0100 0001 = 4116 lsquoBrsquo 1048774 0100 0010 = 4216 lsquoZrsquo 1048774 0101 1010 = 5A16

26 chữ caacutei thường lsquoarsquo đến lsquozrsquo coacute matilde từ 6116 đến 7A16 (97 đến 122) lsquoarsquo 1048774 0110 0001 = 6116 lsquobrsquo 1048774 0110 0010 = 6216 lsquozrsquo 1048774 0111 1010 = 7A16

10 chữ số thập phacircn từ 0 đến 9 coacute matilde từ 3016 đến 3916 (48 đến 57) lsquo0rsquo 1048774 0011 0000 = 3016 lsquo1rsquo 1048774 0011 0001 = 3116 lsquo9rsquo 1048774 0011 1001 = 3916

Bộ matilde hợp nhất Unicode

Do caacutec hatildeng maacutey tiacutenh hagraveng đầu thiết kế Bộ matilde 16-bit Bộ matilde đa ngocircn ngữ Coacute hỗ trợ caacutec kyacute tự tiếng Việt

Page 8: Kiến trúc máy tính

Hệ nhị phacircn

Cơ số 2 2 chữ số nhị phacircn 0 vagrave 1

Chữ số nhị phacircn gọi lagrave bit (binary digit) Bit lagrave đơn vị thocircng tin nhỏ nhất

Dugraveng n bit coacute thể biểu diễn được 2n giaacute trị khaacutec nhau 00000 = 0 11111 = 2n-1

Hệ nhị phacircn

Coacute một số nhị phacircn A như sauA = anan-1a1a0a-1a-m

Giaacute trị của A được tiacutenh như sauA = an2n + an-12n-1 ++ a020 + a-12-1 ++ a-m2-m

Viacute dụ 11010011 0 1 1(2)

6543210-1-2-3-4

= 26 + 25 + 23 + 20 + 2-1 + 2-3 + 2-4

= 64 + 32 + 8 + 1 + 05 + 0125 + 00625

= 1056875(10)

Hệ baacutet phacircn

Hệ thập lục phacircn

Tổng quaacutet

Chuyển đổi caacutec hệ số

Chuyển đổi caacutec hệ số

Phương phaacutep chuyển đổi

Phương phaacutep chuyển đổi

Biểu diễn thocircng tin tronghệ nhị phacircn

BIT (BInary digiT)

0 1 BYTE = tổ hợp 8 bit

01001101 11111111 WORD = tổ hợp nhiều bit

10110 1011100101 1 KiloByte (KB) = 1024 byte = 210 byte 1 MegaByte (MB) = 1024 KB = 220 byte 1 GigaByte (GB) = 1024 MB = 230 byte

32 Matilde hoaacute vagrave lưu trữ dữ liệu trong maacutey tiacutenh

Nguyecircn tắc chung về matilde hoaacute dữ liệu Mọi dữ liệu đưa vagraveo maacutey tiacutenh đều được matilde hoaacute

thagravenh số nhị phacircn Caacutec loại dữ liệu

Dữ liệu nhacircn tạo do con người quy ước Dữ liệu số nguyecircn matilde hoaacute theo một số chuẩnqui ước Dữ liệu số thực matilde hoaacute bằng số dấu chấm động Dữ liệu kyacute tự matilde hoaacute theo bộ matilde kyacute tự

Dữ liệu tự nhiecircn tồn tại khaacutech quan với con người

Matilde hoacutea thocircng tin đầu vagraveo

Matilde hoacutea thocircng tin đầu vagraveo

Thứ tự lưu trữ caacutec byte của dữ liệu

Bộ nhớ chiacutenh thường được tổ chức theo byte Độ dagravei từ dữ liệu coacute thể chiếm từ một đến

nhiều byterArr cần phải biết thứ tự lưu trữ caacutec byte trong bộ nhớ

chiacutenh với caacutec dữ liệu nhiều byte

Thứ tự lưu trữ caacutec byte của dữ liệu

Coacute 2 caacutech lưu trữ Lưu trữ đầu nhỏ (Little-endian) Byte thấp được lưu trữ ở

ngăn nhớ coacute địa chỉ nhỏ hơn byte cao được lưu trữ ở ngăn nhớ coacute địa chỉ lớn hơn

Lưu trữ đầu to (Big-endian) Byte cao được lưu trữ ở ngăn nhớ coacute địa chỉ nhỏ hơn byte thấp được lưu trữ ở ngăn nhớ coacute địa chỉ lớn hơn

Intel 80x86 vagrave caacutec Pentium Little-endianrArr Motorola 680x0 vagrave caacutec bộ xử lyacute RISC Big-endianrArr Power PC vagrave Itanium cả hairArr

33 Biểu diễn số nguyecircn

Coacute hai loại số nguyecircn Số nguyecircn khocircng dấu (Unsigned Integer) Số nguyecircn coacute dấu (Signed Integer)

Biểu diễn số nguyecircn khocircng dấu Dugraveng n bit biểu diễn số nguyecircn khocircng dấu A

an-1an-2hellipa2a1a0

Giaacute trị của A được tiacutenh như sau Dải biểu diễn của A 0 -- 2n-1

Số 8 bit coacute giaacute trị 0 divide 255 Số 16 bit coacute giaacute trị 0 divide 65 535 Số 32 bit coacute giaacute trị 0 divide 4 294 967 295

1

0

2n

i

iiaA

Biểu diễn số nguyecircn khocircng dấun=8 bit

Biểu diễn được caacutec giaacute trị từ 0 đến 255 0000 0000 = 0 Chuacute yacute 0000 0001 = 1 1111 1111 0000 0010 = 2 + 0000 0001 0000 0011 = 3 1 0000 0000 hellip Vậy 255 + 1 = 0 1111 1111 = 255 do tragraven nhớ ra ngoagravei

Biểu diễn số nguyecircn coacute dấu

Số bugrave một vagrave Số bugrave hai Giả sử A lagrave một số nhị phacircn ta coacute Số bugrave một của A nhận được bằng caacutech đảo giaacute trị caacutec bit

của A (Số bugrave hai của A) = (Số bugrave một của A) + 1

Viacute dụ với n= 8 bit Giả sử coacute A = 0010 0101 Số bugrave một của A = 1101 1010

+ 1 Số bugrave hai của A = 1101 1011

Vigrave A + (Số bugrave hai của A) = 0 dugraveng số bugrave hai để biểu diễn cho số acircm

Biểu diễn số nguyecircn coacute dấu

Biểu diễn số nguyecircn coacute dấu bằng matilde bugrave hai Dugraveng n bit biểu diễn số nguyecircn coacute dấu A

an-1an-2hellipa2a1a0

Qui ước chọn bit coacute trọng số cao nhất (MSB) lagravem bit dấu Với A lagrave số dương bit an-1 = 0 caacutec bit cograven lại biểu diễn

độ lớn như số khocircng dấu Với A lagrave số acircm được biểu diễn bằng số bugrave hai của số

dương tương ứng vigrave vậy bit an-1 = 1

Biểu diễn số nguyecircn coacute dấu

Dạng tổng quaacutet của số nguyecircn A

an-1an-2hellipa2a1a0

Giaacute trị của A được xaacutec định như sau

Dải biểu diễn -2n-1 divide 2n-1-1 Số 8 bit coacute dấu coacute giaacute trị -128 divide +127 Số 16 bit coacute dấu coacute giaacute trị -32768 divide +32767

2

0

11 22

n

i

ii

nn aaA

Biểu diễn số nguyecircn coacute dấu n = 8 bit Biểu diễn được caacutec giaacute trị từ -128 đến +127 0000 0000 = 0 0000 0001 = +1 0000 0010 = +2 Chuacute yacute 0000 0011 = +3 +127 + 1 = -128 hellip -128 - 1 = +127 0111 1111 = +127 do tragraven xảy ra 1000 0000 = - 128 1000 0001 = - 127 hellip 1111 1110 = -2 1111 1111 = -1

Biểu diễn số nguyecircn coacute dấu

Chuyển đổi từ byte thagravenh word Đối với số dương

+19 = 0001 0011 (8 bit) +19 = 0000 0000 0001 0011 (16 bit)thecircm 8 bit 0 becircn traacutei

Đối với số acircm - 19 = 1110 1101 (8 bit) - 19 = 1111 1111 1110 1101 (16 bit)thecircm 8 bit 1 becircn traacutei

Với n=32 bit biểu diễn từ -231 đến 231-1 Với n=64 bit biểu diễn từ -263 đến 263-1

Biểu diễn số nguyecircn theo matilde BCD Binary Coded Decimal Code Số BCD được dugraveng để tiacutenh toaacuten trecircn số thập phacircn

trong hệ nhị phacircn Số BCD lagrave số viết theo hệ 16 nhưng giaacute trị tiacutenh theo

hệ 10 Số 12BCD được viết trong hệ 2 lagrave 0001 0010 nhưng coacute giaacute

trị lagrave 12 thay vigrave 18 (1216= 1810) Dugraveng 4 bit để matilde hoaacute cho caacutec chữ số thập phacircn từ 0 đến 9

0 0000 3 0011 6 0110 9 10011 0001 4 0100 7 0111 2 0010 5 0101 8 1000

Coacute 6 tổ hợp khocircng sử dụng 1010 1011 1100 1101 1110 1111

Caacutec kiểu lưu trữ số BCD

BCD khocircng goacutei (Unpacked BCD) Mỗi số BCD 4-bit được lưu trữ trong 4-bit thấp

của mỗi byte Viacute dụ Số 35 được lưu trữ 2 byte

0011 0101

BCD goacutei (Packed BCD) Hai số BCD được lưu trữ trong 1 byte Viacute dụ số 35 được lưu trữ 1 byte

0 0 1 1 0 1 0 1

Thực hiện caacutec pheacutep toaacuten số học với số nguyecircn Pheacutep cộng Pheacutep đảo dấu

Pheacutep đảo dấu trong maacutey tiacutenh thực chất lagrave lấy bugrave 2 Pheacutep trừ Nhacircn số nguyecircn

khocircng dấu coacute dấu

Thuật toaacuten nhacircn nhanh Booth Chia số nguyecircn

khocircng dấu coacute dấu

Số dấu chấm động

Số chấm động (floating point) dugraveng để tiacutenh toaacuten trecircn số thực một số thực X được biểu diễn theo kiểu số dấu chấm động

như sauX = plusmn m Bplusmne

m lagrave phần định trị (Mantissa) B lagrave cơ số (base) e lagrave phần mũ (Exponent)

m (mantissa) quyết định độ chiacutenh xaacutec B (base) e (exponent) quyết định độ lớnnhỏ

Số dấu chấm động

Một giaacute trị coacute thể biểu diễn dưới nhiều dạng Khoacute xử lyacute Cần chuẩn hoacutea

Số chấm động theo chuẩn IEEE 754 Cơ số 2 Coacute 2 dạng

Chiacutenh xaacutec đơn 32 bit độ lệch mũ (bias) 127 Cocircng thức tiacutenh giaacute trị X = (-1)S x 1m x 2e-127

Chiacutenh xaacutec keacutep 64 bit độ lệch mũ (bias) 1023 Cocircng thức tiacutenh giaacute trị X = (-1)S x 1m x 2e-1023

Số chấm động theo chuẩn IEEE 754

Caacutec quy ước đặc biệt

Caacutec bit của e bằng 0 caacutec bit của m bằng 0 thigrave X= plusmn 0 x000 0000 0000 0000 0000 0000 0000 0000 X= plusmn 0

Caacutec bit của e bằng 1 caacutec bit của m bằng 0 thigrave X= plusmn infin x111 1111 1000 0000 0000 0000 0000 0000 1048774 X= plusmn infin

Caacutec bit của e bằng 1 cograven m coacute iacutet nhất 1 bit bằng 1 thigrave noacute khocircng biểu diễn cho số nagraveo cả (NaN ndash not a number)

Biểu diễn kyacute tự

Bộ matilde ASCII (American Standard Code for Information Interchange) Do ANSI (American National Standard Institute)

thiết kế Bộ matilde 8 bit coacute thể matilde hoacutea được 28 =256 kyacute tự

coacute matilde từ 0016 divide FF16 trong đoacute 128 kyacute tự chuẩn coacute matilde từ 0016 divide 7F16 128 kyacute tự mở rộng coacute matilde từ 8016 divide FF16

Bộ matilde Unicode

Bộ matilde ASCII Caacutec kyacute tự chuẩn

26 chữ caacutei hoa lsquoArsquo đến lsquoZrsquo coacute matilde từ 4116 đến 5A16 (65 đến 90) lsquoArsquo 1048774 0100 0001 = 4116 lsquoBrsquo 1048774 0100 0010 = 4216 lsquoZrsquo 1048774 0101 1010 = 5A16

26 chữ caacutei thường lsquoarsquo đến lsquozrsquo coacute matilde từ 6116 đến 7A16 (97 đến 122) lsquoarsquo 1048774 0110 0001 = 6116 lsquobrsquo 1048774 0110 0010 = 6216 lsquozrsquo 1048774 0111 1010 = 7A16

10 chữ số thập phacircn từ 0 đến 9 coacute matilde từ 3016 đến 3916 (48 đến 57) lsquo0rsquo 1048774 0011 0000 = 3016 lsquo1rsquo 1048774 0011 0001 = 3116 lsquo9rsquo 1048774 0011 1001 = 3916

Bộ matilde hợp nhất Unicode

Do caacutec hatildeng maacutey tiacutenh hagraveng đầu thiết kế Bộ matilde 16-bit Bộ matilde đa ngocircn ngữ Coacute hỗ trợ caacutec kyacute tự tiếng Việt

Page 9: Kiến trúc máy tính

Hệ nhị phacircn

Coacute một số nhị phacircn A như sauA = anan-1a1a0a-1a-m

Giaacute trị của A được tiacutenh như sauA = an2n + an-12n-1 ++ a020 + a-12-1 ++ a-m2-m

Viacute dụ 11010011 0 1 1(2)

6543210-1-2-3-4

= 26 + 25 + 23 + 20 + 2-1 + 2-3 + 2-4

= 64 + 32 + 8 + 1 + 05 + 0125 + 00625

= 1056875(10)

Hệ baacutet phacircn

Hệ thập lục phacircn

Tổng quaacutet

Chuyển đổi caacutec hệ số

Chuyển đổi caacutec hệ số

Phương phaacutep chuyển đổi

Phương phaacutep chuyển đổi

Biểu diễn thocircng tin tronghệ nhị phacircn

BIT (BInary digiT)

0 1 BYTE = tổ hợp 8 bit

01001101 11111111 WORD = tổ hợp nhiều bit

10110 1011100101 1 KiloByte (KB) = 1024 byte = 210 byte 1 MegaByte (MB) = 1024 KB = 220 byte 1 GigaByte (GB) = 1024 MB = 230 byte

32 Matilde hoaacute vagrave lưu trữ dữ liệu trong maacutey tiacutenh

Nguyecircn tắc chung về matilde hoaacute dữ liệu Mọi dữ liệu đưa vagraveo maacutey tiacutenh đều được matilde hoaacute

thagravenh số nhị phacircn Caacutec loại dữ liệu

Dữ liệu nhacircn tạo do con người quy ước Dữ liệu số nguyecircn matilde hoaacute theo một số chuẩnqui ước Dữ liệu số thực matilde hoaacute bằng số dấu chấm động Dữ liệu kyacute tự matilde hoaacute theo bộ matilde kyacute tự

Dữ liệu tự nhiecircn tồn tại khaacutech quan với con người

Matilde hoacutea thocircng tin đầu vagraveo

Matilde hoacutea thocircng tin đầu vagraveo

Thứ tự lưu trữ caacutec byte của dữ liệu

Bộ nhớ chiacutenh thường được tổ chức theo byte Độ dagravei từ dữ liệu coacute thể chiếm từ một đến

nhiều byterArr cần phải biết thứ tự lưu trữ caacutec byte trong bộ nhớ

chiacutenh với caacutec dữ liệu nhiều byte

Thứ tự lưu trữ caacutec byte của dữ liệu

Coacute 2 caacutech lưu trữ Lưu trữ đầu nhỏ (Little-endian) Byte thấp được lưu trữ ở

ngăn nhớ coacute địa chỉ nhỏ hơn byte cao được lưu trữ ở ngăn nhớ coacute địa chỉ lớn hơn

Lưu trữ đầu to (Big-endian) Byte cao được lưu trữ ở ngăn nhớ coacute địa chỉ nhỏ hơn byte thấp được lưu trữ ở ngăn nhớ coacute địa chỉ lớn hơn

Intel 80x86 vagrave caacutec Pentium Little-endianrArr Motorola 680x0 vagrave caacutec bộ xử lyacute RISC Big-endianrArr Power PC vagrave Itanium cả hairArr

33 Biểu diễn số nguyecircn

Coacute hai loại số nguyecircn Số nguyecircn khocircng dấu (Unsigned Integer) Số nguyecircn coacute dấu (Signed Integer)

Biểu diễn số nguyecircn khocircng dấu Dugraveng n bit biểu diễn số nguyecircn khocircng dấu A

an-1an-2hellipa2a1a0

Giaacute trị của A được tiacutenh như sau Dải biểu diễn của A 0 -- 2n-1

Số 8 bit coacute giaacute trị 0 divide 255 Số 16 bit coacute giaacute trị 0 divide 65 535 Số 32 bit coacute giaacute trị 0 divide 4 294 967 295

1

0

2n

i

iiaA

Biểu diễn số nguyecircn khocircng dấun=8 bit

Biểu diễn được caacutec giaacute trị từ 0 đến 255 0000 0000 = 0 Chuacute yacute 0000 0001 = 1 1111 1111 0000 0010 = 2 + 0000 0001 0000 0011 = 3 1 0000 0000 hellip Vậy 255 + 1 = 0 1111 1111 = 255 do tragraven nhớ ra ngoagravei

Biểu diễn số nguyecircn coacute dấu

Số bugrave một vagrave Số bugrave hai Giả sử A lagrave một số nhị phacircn ta coacute Số bugrave một của A nhận được bằng caacutech đảo giaacute trị caacutec bit

của A (Số bugrave hai của A) = (Số bugrave một của A) + 1

Viacute dụ với n= 8 bit Giả sử coacute A = 0010 0101 Số bugrave một của A = 1101 1010

+ 1 Số bugrave hai của A = 1101 1011

Vigrave A + (Số bugrave hai của A) = 0 dugraveng số bugrave hai để biểu diễn cho số acircm

Biểu diễn số nguyecircn coacute dấu

Biểu diễn số nguyecircn coacute dấu bằng matilde bugrave hai Dugraveng n bit biểu diễn số nguyecircn coacute dấu A

an-1an-2hellipa2a1a0

Qui ước chọn bit coacute trọng số cao nhất (MSB) lagravem bit dấu Với A lagrave số dương bit an-1 = 0 caacutec bit cograven lại biểu diễn

độ lớn như số khocircng dấu Với A lagrave số acircm được biểu diễn bằng số bugrave hai của số

dương tương ứng vigrave vậy bit an-1 = 1

Biểu diễn số nguyecircn coacute dấu

Dạng tổng quaacutet của số nguyecircn A

an-1an-2hellipa2a1a0

Giaacute trị của A được xaacutec định như sau

Dải biểu diễn -2n-1 divide 2n-1-1 Số 8 bit coacute dấu coacute giaacute trị -128 divide +127 Số 16 bit coacute dấu coacute giaacute trị -32768 divide +32767

2

0

11 22

n

i

ii

nn aaA

Biểu diễn số nguyecircn coacute dấu n = 8 bit Biểu diễn được caacutec giaacute trị từ -128 đến +127 0000 0000 = 0 0000 0001 = +1 0000 0010 = +2 Chuacute yacute 0000 0011 = +3 +127 + 1 = -128 hellip -128 - 1 = +127 0111 1111 = +127 do tragraven xảy ra 1000 0000 = - 128 1000 0001 = - 127 hellip 1111 1110 = -2 1111 1111 = -1

Biểu diễn số nguyecircn coacute dấu

Chuyển đổi từ byte thagravenh word Đối với số dương

+19 = 0001 0011 (8 bit) +19 = 0000 0000 0001 0011 (16 bit)thecircm 8 bit 0 becircn traacutei

Đối với số acircm - 19 = 1110 1101 (8 bit) - 19 = 1111 1111 1110 1101 (16 bit)thecircm 8 bit 1 becircn traacutei

Với n=32 bit biểu diễn từ -231 đến 231-1 Với n=64 bit biểu diễn từ -263 đến 263-1

Biểu diễn số nguyecircn theo matilde BCD Binary Coded Decimal Code Số BCD được dugraveng để tiacutenh toaacuten trecircn số thập phacircn

trong hệ nhị phacircn Số BCD lagrave số viết theo hệ 16 nhưng giaacute trị tiacutenh theo

hệ 10 Số 12BCD được viết trong hệ 2 lagrave 0001 0010 nhưng coacute giaacute

trị lagrave 12 thay vigrave 18 (1216= 1810) Dugraveng 4 bit để matilde hoaacute cho caacutec chữ số thập phacircn từ 0 đến 9

0 0000 3 0011 6 0110 9 10011 0001 4 0100 7 0111 2 0010 5 0101 8 1000

Coacute 6 tổ hợp khocircng sử dụng 1010 1011 1100 1101 1110 1111

Caacutec kiểu lưu trữ số BCD

BCD khocircng goacutei (Unpacked BCD) Mỗi số BCD 4-bit được lưu trữ trong 4-bit thấp

của mỗi byte Viacute dụ Số 35 được lưu trữ 2 byte

0011 0101

BCD goacutei (Packed BCD) Hai số BCD được lưu trữ trong 1 byte Viacute dụ số 35 được lưu trữ 1 byte

0 0 1 1 0 1 0 1

Thực hiện caacutec pheacutep toaacuten số học với số nguyecircn Pheacutep cộng Pheacutep đảo dấu

Pheacutep đảo dấu trong maacutey tiacutenh thực chất lagrave lấy bugrave 2 Pheacutep trừ Nhacircn số nguyecircn

khocircng dấu coacute dấu

Thuật toaacuten nhacircn nhanh Booth Chia số nguyecircn

khocircng dấu coacute dấu

Số dấu chấm động

Số chấm động (floating point) dugraveng để tiacutenh toaacuten trecircn số thực một số thực X được biểu diễn theo kiểu số dấu chấm động

như sauX = plusmn m Bplusmne

m lagrave phần định trị (Mantissa) B lagrave cơ số (base) e lagrave phần mũ (Exponent)

m (mantissa) quyết định độ chiacutenh xaacutec B (base) e (exponent) quyết định độ lớnnhỏ

Số dấu chấm động

Một giaacute trị coacute thể biểu diễn dưới nhiều dạng Khoacute xử lyacute Cần chuẩn hoacutea

Số chấm động theo chuẩn IEEE 754 Cơ số 2 Coacute 2 dạng

Chiacutenh xaacutec đơn 32 bit độ lệch mũ (bias) 127 Cocircng thức tiacutenh giaacute trị X = (-1)S x 1m x 2e-127

Chiacutenh xaacutec keacutep 64 bit độ lệch mũ (bias) 1023 Cocircng thức tiacutenh giaacute trị X = (-1)S x 1m x 2e-1023

Số chấm động theo chuẩn IEEE 754

Caacutec quy ước đặc biệt

Caacutec bit của e bằng 0 caacutec bit của m bằng 0 thigrave X= plusmn 0 x000 0000 0000 0000 0000 0000 0000 0000 X= plusmn 0

Caacutec bit của e bằng 1 caacutec bit của m bằng 0 thigrave X= plusmn infin x111 1111 1000 0000 0000 0000 0000 0000 1048774 X= plusmn infin

Caacutec bit của e bằng 1 cograven m coacute iacutet nhất 1 bit bằng 1 thigrave noacute khocircng biểu diễn cho số nagraveo cả (NaN ndash not a number)

Biểu diễn kyacute tự

Bộ matilde ASCII (American Standard Code for Information Interchange) Do ANSI (American National Standard Institute)

thiết kế Bộ matilde 8 bit coacute thể matilde hoacutea được 28 =256 kyacute tự

coacute matilde từ 0016 divide FF16 trong đoacute 128 kyacute tự chuẩn coacute matilde từ 0016 divide 7F16 128 kyacute tự mở rộng coacute matilde từ 8016 divide FF16

Bộ matilde Unicode

Bộ matilde ASCII Caacutec kyacute tự chuẩn

26 chữ caacutei hoa lsquoArsquo đến lsquoZrsquo coacute matilde từ 4116 đến 5A16 (65 đến 90) lsquoArsquo 1048774 0100 0001 = 4116 lsquoBrsquo 1048774 0100 0010 = 4216 lsquoZrsquo 1048774 0101 1010 = 5A16

26 chữ caacutei thường lsquoarsquo đến lsquozrsquo coacute matilde từ 6116 đến 7A16 (97 đến 122) lsquoarsquo 1048774 0110 0001 = 6116 lsquobrsquo 1048774 0110 0010 = 6216 lsquozrsquo 1048774 0111 1010 = 7A16

10 chữ số thập phacircn từ 0 đến 9 coacute matilde từ 3016 đến 3916 (48 đến 57) lsquo0rsquo 1048774 0011 0000 = 3016 lsquo1rsquo 1048774 0011 0001 = 3116 lsquo9rsquo 1048774 0011 1001 = 3916

Bộ matilde hợp nhất Unicode

Do caacutec hatildeng maacutey tiacutenh hagraveng đầu thiết kế Bộ matilde 16-bit Bộ matilde đa ngocircn ngữ Coacute hỗ trợ caacutec kyacute tự tiếng Việt

Page 10: Kiến trúc máy tính

Hệ baacutet phacircn

Hệ thập lục phacircn

Tổng quaacutet

Chuyển đổi caacutec hệ số

Chuyển đổi caacutec hệ số

Phương phaacutep chuyển đổi

Phương phaacutep chuyển đổi

Biểu diễn thocircng tin tronghệ nhị phacircn

BIT (BInary digiT)

0 1 BYTE = tổ hợp 8 bit

01001101 11111111 WORD = tổ hợp nhiều bit

10110 1011100101 1 KiloByte (KB) = 1024 byte = 210 byte 1 MegaByte (MB) = 1024 KB = 220 byte 1 GigaByte (GB) = 1024 MB = 230 byte

32 Matilde hoaacute vagrave lưu trữ dữ liệu trong maacutey tiacutenh

Nguyecircn tắc chung về matilde hoaacute dữ liệu Mọi dữ liệu đưa vagraveo maacutey tiacutenh đều được matilde hoaacute

thagravenh số nhị phacircn Caacutec loại dữ liệu

Dữ liệu nhacircn tạo do con người quy ước Dữ liệu số nguyecircn matilde hoaacute theo một số chuẩnqui ước Dữ liệu số thực matilde hoaacute bằng số dấu chấm động Dữ liệu kyacute tự matilde hoaacute theo bộ matilde kyacute tự

Dữ liệu tự nhiecircn tồn tại khaacutech quan với con người

Matilde hoacutea thocircng tin đầu vagraveo

Matilde hoacutea thocircng tin đầu vagraveo

Thứ tự lưu trữ caacutec byte của dữ liệu

Bộ nhớ chiacutenh thường được tổ chức theo byte Độ dagravei từ dữ liệu coacute thể chiếm từ một đến

nhiều byterArr cần phải biết thứ tự lưu trữ caacutec byte trong bộ nhớ

chiacutenh với caacutec dữ liệu nhiều byte

Thứ tự lưu trữ caacutec byte của dữ liệu

Coacute 2 caacutech lưu trữ Lưu trữ đầu nhỏ (Little-endian) Byte thấp được lưu trữ ở

ngăn nhớ coacute địa chỉ nhỏ hơn byte cao được lưu trữ ở ngăn nhớ coacute địa chỉ lớn hơn

Lưu trữ đầu to (Big-endian) Byte cao được lưu trữ ở ngăn nhớ coacute địa chỉ nhỏ hơn byte thấp được lưu trữ ở ngăn nhớ coacute địa chỉ lớn hơn

Intel 80x86 vagrave caacutec Pentium Little-endianrArr Motorola 680x0 vagrave caacutec bộ xử lyacute RISC Big-endianrArr Power PC vagrave Itanium cả hairArr

33 Biểu diễn số nguyecircn

Coacute hai loại số nguyecircn Số nguyecircn khocircng dấu (Unsigned Integer) Số nguyecircn coacute dấu (Signed Integer)

Biểu diễn số nguyecircn khocircng dấu Dugraveng n bit biểu diễn số nguyecircn khocircng dấu A

an-1an-2hellipa2a1a0

Giaacute trị của A được tiacutenh như sau Dải biểu diễn của A 0 -- 2n-1

Số 8 bit coacute giaacute trị 0 divide 255 Số 16 bit coacute giaacute trị 0 divide 65 535 Số 32 bit coacute giaacute trị 0 divide 4 294 967 295

1

0

2n

i

iiaA

Biểu diễn số nguyecircn khocircng dấun=8 bit

Biểu diễn được caacutec giaacute trị từ 0 đến 255 0000 0000 = 0 Chuacute yacute 0000 0001 = 1 1111 1111 0000 0010 = 2 + 0000 0001 0000 0011 = 3 1 0000 0000 hellip Vậy 255 + 1 = 0 1111 1111 = 255 do tragraven nhớ ra ngoagravei

Biểu diễn số nguyecircn coacute dấu

Số bugrave một vagrave Số bugrave hai Giả sử A lagrave một số nhị phacircn ta coacute Số bugrave một của A nhận được bằng caacutech đảo giaacute trị caacutec bit

của A (Số bugrave hai của A) = (Số bugrave một của A) + 1

Viacute dụ với n= 8 bit Giả sử coacute A = 0010 0101 Số bugrave một của A = 1101 1010

+ 1 Số bugrave hai của A = 1101 1011

Vigrave A + (Số bugrave hai của A) = 0 dugraveng số bugrave hai để biểu diễn cho số acircm

Biểu diễn số nguyecircn coacute dấu

Biểu diễn số nguyecircn coacute dấu bằng matilde bugrave hai Dugraveng n bit biểu diễn số nguyecircn coacute dấu A

an-1an-2hellipa2a1a0

Qui ước chọn bit coacute trọng số cao nhất (MSB) lagravem bit dấu Với A lagrave số dương bit an-1 = 0 caacutec bit cograven lại biểu diễn

độ lớn như số khocircng dấu Với A lagrave số acircm được biểu diễn bằng số bugrave hai của số

dương tương ứng vigrave vậy bit an-1 = 1

Biểu diễn số nguyecircn coacute dấu

Dạng tổng quaacutet của số nguyecircn A

an-1an-2hellipa2a1a0

Giaacute trị của A được xaacutec định như sau

Dải biểu diễn -2n-1 divide 2n-1-1 Số 8 bit coacute dấu coacute giaacute trị -128 divide +127 Số 16 bit coacute dấu coacute giaacute trị -32768 divide +32767

2

0

11 22

n

i

ii

nn aaA

Biểu diễn số nguyecircn coacute dấu n = 8 bit Biểu diễn được caacutec giaacute trị từ -128 đến +127 0000 0000 = 0 0000 0001 = +1 0000 0010 = +2 Chuacute yacute 0000 0011 = +3 +127 + 1 = -128 hellip -128 - 1 = +127 0111 1111 = +127 do tragraven xảy ra 1000 0000 = - 128 1000 0001 = - 127 hellip 1111 1110 = -2 1111 1111 = -1

Biểu diễn số nguyecircn coacute dấu

Chuyển đổi từ byte thagravenh word Đối với số dương

+19 = 0001 0011 (8 bit) +19 = 0000 0000 0001 0011 (16 bit)thecircm 8 bit 0 becircn traacutei

Đối với số acircm - 19 = 1110 1101 (8 bit) - 19 = 1111 1111 1110 1101 (16 bit)thecircm 8 bit 1 becircn traacutei

Với n=32 bit biểu diễn từ -231 đến 231-1 Với n=64 bit biểu diễn từ -263 đến 263-1

Biểu diễn số nguyecircn theo matilde BCD Binary Coded Decimal Code Số BCD được dugraveng để tiacutenh toaacuten trecircn số thập phacircn

trong hệ nhị phacircn Số BCD lagrave số viết theo hệ 16 nhưng giaacute trị tiacutenh theo

hệ 10 Số 12BCD được viết trong hệ 2 lagrave 0001 0010 nhưng coacute giaacute

trị lagrave 12 thay vigrave 18 (1216= 1810) Dugraveng 4 bit để matilde hoaacute cho caacutec chữ số thập phacircn từ 0 đến 9

0 0000 3 0011 6 0110 9 10011 0001 4 0100 7 0111 2 0010 5 0101 8 1000

Coacute 6 tổ hợp khocircng sử dụng 1010 1011 1100 1101 1110 1111

Caacutec kiểu lưu trữ số BCD

BCD khocircng goacutei (Unpacked BCD) Mỗi số BCD 4-bit được lưu trữ trong 4-bit thấp

của mỗi byte Viacute dụ Số 35 được lưu trữ 2 byte

0011 0101

BCD goacutei (Packed BCD) Hai số BCD được lưu trữ trong 1 byte Viacute dụ số 35 được lưu trữ 1 byte

0 0 1 1 0 1 0 1

Thực hiện caacutec pheacutep toaacuten số học với số nguyecircn Pheacutep cộng Pheacutep đảo dấu

Pheacutep đảo dấu trong maacutey tiacutenh thực chất lagrave lấy bugrave 2 Pheacutep trừ Nhacircn số nguyecircn

khocircng dấu coacute dấu

Thuật toaacuten nhacircn nhanh Booth Chia số nguyecircn

khocircng dấu coacute dấu

Số dấu chấm động

Số chấm động (floating point) dugraveng để tiacutenh toaacuten trecircn số thực một số thực X được biểu diễn theo kiểu số dấu chấm động

như sauX = plusmn m Bplusmne

m lagrave phần định trị (Mantissa) B lagrave cơ số (base) e lagrave phần mũ (Exponent)

m (mantissa) quyết định độ chiacutenh xaacutec B (base) e (exponent) quyết định độ lớnnhỏ

Số dấu chấm động

Một giaacute trị coacute thể biểu diễn dưới nhiều dạng Khoacute xử lyacute Cần chuẩn hoacutea

Số chấm động theo chuẩn IEEE 754 Cơ số 2 Coacute 2 dạng

Chiacutenh xaacutec đơn 32 bit độ lệch mũ (bias) 127 Cocircng thức tiacutenh giaacute trị X = (-1)S x 1m x 2e-127

Chiacutenh xaacutec keacutep 64 bit độ lệch mũ (bias) 1023 Cocircng thức tiacutenh giaacute trị X = (-1)S x 1m x 2e-1023

Số chấm động theo chuẩn IEEE 754

Caacutec quy ước đặc biệt

Caacutec bit của e bằng 0 caacutec bit của m bằng 0 thigrave X= plusmn 0 x000 0000 0000 0000 0000 0000 0000 0000 X= plusmn 0

Caacutec bit của e bằng 1 caacutec bit của m bằng 0 thigrave X= plusmn infin x111 1111 1000 0000 0000 0000 0000 0000 1048774 X= plusmn infin

Caacutec bit của e bằng 1 cograven m coacute iacutet nhất 1 bit bằng 1 thigrave noacute khocircng biểu diễn cho số nagraveo cả (NaN ndash not a number)

Biểu diễn kyacute tự

Bộ matilde ASCII (American Standard Code for Information Interchange) Do ANSI (American National Standard Institute)

thiết kế Bộ matilde 8 bit coacute thể matilde hoacutea được 28 =256 kyacute tự

coacute matilde từ 0016 divide FF16 trong đoacute 128 kyacute tự chuẩn coacute matilde từ 0016 divide 7F16 128 kyacute tự mở rộng coacute matilde từ 8016 divide FF16

Bộ matilde Unicode

Bộ matilde ASCII Caacutec kyacute tự chuẩn

26 chữ caacutei hoa lsquoArsquo đến lsquoZrsquo coacute matilde từ 4116 đến 5A16 (65 đến 90) lsquoArsquo 1048774 0100 0001 = 4116 lsquoBrsquo 1048774 0100 0010 = 4216 lsquoZrsquo 1048774 0101 1010 = 5A16

26 chữ caacutei thường lsquoarsquo đến lsquozrsquo coacute matilde từ 6116 đến 7A16 (97 đến 122) lsquoarsquo 1048774 0110 0001 = 6116 lsquobrsquo 1048774 0110 0010 = 6216 lsquozrsquo 1048774 0111 1010 = 7A16

10 chữ số thập phacircn từ 0 đến 9 coacute matilde từ 3016 đến 3916 (48 đến 57) lsquo0rsquo 1048774 0011 0000 = 3016 lsquo1rsquo 1048774 0011 0001 = 3116 lsquo9rsquo 1048774 0011 1001 = 3916

Bộ matilde hợp nhất Unicode

Do caacutec hatildeng maacutey tiacutenh hagraveng đầu thiết kế Bộ matilde 16-bit Bộ matilde đa ngocircn ngữ Coacute hỗ trợ caacutec kyacute tự tiếng Việt

Page 11: Kiến trúc máy tính

Hệ thập lục phacircn

Tổng quaacutet

Chuyển đổi caacutec hệ số

Chuyển đổi caacutec hệ số

Phương phaacutep chuyển đổi

Phương phaacutep chuyển đổi

Biểu diễn thocircng tin tronghệ nhị phacircn

BIT (BInary digiT)

0 1 BYTE = tổ hợp 8 bit

01001101 11111111 WORD = tổ hợp nhiều bit

10110 1011100101 1 KiloByte (KB) = 1024 byte = 210 byte 1 MegaByte (MB) = 1024 KB = 220 byte 1 GigaByte (GB) = 1024 MB = 230 byte

32 Matilde hoaacute vagrave lưu trữ dữ liệu trong maacutey tiacutenh

Nguyecircn tắc chung về matilde hoaacute dữ liệu Mọi dữ liệu đưa vagraveo maacutey tiacutenh đều được matilde hoaacute

thagravenh số nhị phacircn Caacutec loại dữ liệu

Dữ liệu nhacircn tạo do con người quy ước Dữ liệu số nguyecircn matilde hoaacute theo một số chuẩnqui ước Dữ liệu số thực matilde hoaacute bằng số dấu chấm động Dữ liệu kyacute tự matilde hoaacute theo bộ matilde kyacute tự

Dữ liệu tự nhiecircn tồn tại khaacutech quan với con người

Matilde hoacutea thocircng tin đầu vagraveo

Matilde hoacutea thocircng tin đầu vagraveo

Thứ tự lưu trữ caacutec byte của dữ liệu

Bộ nhớ chiacutenh thường được tổ chức theo byte Độ dagravei từ dữ liệu coacute thể chiếm từ một đến

nhiều byterArr cần phải biết thứ tự lưu trữ caacutec byte trong bộ nhớ

chiacutenh với caacutec dữ liệu nhiều byte

Thứ tự lưu trữ caacutec byte của dữ liệu

Coacute 2 caacutech lưu trữ Lưu trữ đầu nhỏ (Little-endian) Byte thấp được lưu trữ ở

ngăn nhớ coacute địa chỉ nhỏ hơn byte cao được lưu trữ ở ngăn nhớ coacute địa chỉ lớn hơn

Lưu trữ đầu to (Big-endian) Byte cao được lưu trữ ở ngăn nhớ coacute địa chỉ nhỏ hơn byte thấp được lưu trữ ở ngăn nhớ coacute địa chỉ lớn hơn

Intel 80x86 vagrave caacutec Pentium Little-endianrArr Motorola 680x0 vagrave caacutec bộ xử lyacute RISC Big-endianrArr Power PC vagrave Itanium cả hairArr

33 Biểu diễn số nguyecircn

Coacute hai loại số nguyecircn Số nguyecircn khocircng dấu (Unsigned Integer) Số nguyecircn coacute dấu (Signed Integer)

Biểu diễn số nguyecircn khocircng dấu Dugraveng n bit biểu diễn số nguyecircn khocircng dấu A

an-1an-2hellipa2a1a0

Giaacute trị của A được tiacutenh như sau Dải biểu diễn của A 0 -- 2n-1

Số 8 bit coacute giaacute trị 0 divide 255 Số 16 bit coacute giaacute trị 0 divide 65 535 Số 32 bit coacute giaacute trị 0 divide 4 294 967 295

1

0

2n

i

iiaA

Biểu diễn số nguyecircn khocircng dấun=8 bit

Biểu diễn được caacutec giaacute trị từ 0 đến 255 0000 0000 = 0 Chuacute yacute 0000 0001 = 1 1111 1111 0000 0010 = 2 + 0000 0001 0000 0011 = 3 1 0000 0000 hellip Vậy 255 + 1 = 0 1111 1111 = 255 do tragraven nhớ ra ngoagravei

Biểu diễn số nguyecircn coacute dấu

Số bugrave một vagrave Số bugrave hai Giả sử A lagrave một số nhị phacircn ta coacute Số bugrave một của A nhận được bằng caacutech đảo giaacute trị caacutec bit

của A (Số bugrave hai của A) = (Số bugrave một của A) + 1

Viacute dụ với n= 8 bit Giả sử coacute A = 0010 0101 Số bugrave một của A = 1101 1010

+ 1 Số bugrave hai của A = 1101 1011

Vigrave A + (Số bugrave hai của A) = 0 dugraveng số bugrave hai để biểu diễn cho số acircm

Biểu diễn số nguyecircn coacute dấu

Biểu diễn số nguyecircn coacute dấu bằng matilde bugrave hai Dugraveng n bit biểu diễn số nguyecircn coacute dấu A

an-1an-2hellipa2a1a0

Qui ước chọn bit coacute trọng số cao nhất (MSB) lagravem bit dấu Với A lagrave số dương bit an-1 = 0 caacutec bit cograven lại biểu diễn

độ lớn như số khocircng dấu Với A lagrave số acircm được biểu diễn bằng số bugrave hai của số

dương tương ứng vigrave vậy bit an-1 = 1

Biểu diễn số nguyecircn coacute dấu

Dạng tổng quaacutet của số nguyecircn A

an-1an-2hellipa2a1a0

Giaacute trị của A được xaacutec định như sau

Dải biểu diễn -2n-1 divide 2n-1-1 Số 8 bit coacute dấu coacute giaacute trị -128 divide +127 Số 16 bit coacute dấu coacute giaacute trị -32768 divide +32767

2

0

11 22

n

i

ii

nn aaA

Biểu diễn số nguyecircn coacute dấu n = 8 bit Biểu diễn được caacutec giaacute trị từ -128 đến +127 0000 0000 = 0 0000 0001 = +1 0000 0010 = +2 Chuacute yacute 0000 0011 = +3 +127 + 1 = -128 hellip -128 - 1 = +127 0111 1111 = +127 do tragraven xảy ra 1000 0000 = - 128 1000 0001 = - 127 hellip 1111 1110 = -2 1111 1111 = -1

Biểu diễn số nguyecircn coacute dấu

Chuyển đổi từ byte thagravenh word Đối với số dương

+19 = 0001 0011 (8 bit) +19 = 0000 0000 0001 0011 (16 bit)thecircm 8 bit 0 becircn traacutei

Đối với số acircm - 19 = 1110 1101 (8 bit) - 19 = 1111 1111 1110 1101 (16 bit)thecircm 8 bit 1 becircn traacutei

Với n=32 bit biểu diễn từ -231 đến 231-1 Với n=64 bit biểu diễn từ -263 đến 263-1

Biểu diễn số nguyecircn theo matilde BCD Binary Coded Decimal Code Số BCD được dugraveng để tiacutenh toaacuten trecircn số thập phacircn

trong hệ nhị phacircn Số BCD lagrave số viết theo hệ 16 nhưng giaacute trị tiacutenh theo

hệ 10 Số 12BCD được viết trong hệ 2 lagrave 0001 0010 nhưng coacute giaacute

trị lagrave 12 thay vigrave 18 (1216= 1810) Dugraveng 4 bit để matilde hoaacute cho caacutec chữ số thập phacircn từ 0 đến 9

0 0000 3 0011 6 0110 9 10011 0001 4 0100 7 0111 2 0010 5 0101 8 1000

Coacute 6 tổ hợp khocircng sử dụng 1010 1011 1100 1101 1110 1111

Caacutec kiểu lưu trữ số BCD

BCD khocircng goacutei (Unpacked BCD) Mỗi số BCD 4-bit được lưu trữ trong 4-bit thấp

của mỗi byte Viacute dụ Số 35 được lưu trữ 2 byte

0011 0101

BCD goacutei (Packed BCD) Hai số BCD được lưu trữ trong 1 byte Viacute dụ số 35 được lưu trữ 1 byte

0 0 1 1 0 1 0 1

Thực hiện caacutec pheacutep toaacuten số học với số nguyecircn Pheacutep cộng Pheacutep đảo dấu

Pheacutep đảo dấu trong maacutey tiacutenh thực chất lagrave lấy bugrave 2 Pheacutep trừ Nhacircn số nguyecircn

khocircng dấu coacute dấu

Thuật toaacuten nhacircn nhanh Booth Chia số nguyecircn

khocircng dấu coacute dấu

Số dấu chấm động

Số chấm động (floating point) dugraveng để tiacutenh toaacuten trecircn số thực một số thực X được biểu diễn theo kiểu số dấu chấm động

như sauX = plusmn m Bplusmne

m lagrave phần định trị (Mantissa) B lagrave cơ số (base) e lagrave phần mũ (Exponent)

m (mantissa) quyết định độ chiacutenh xaacutec B (base) e (exponent) quyết định độ lớnnhỏ

Số dấu chấm động

Một giaacute trị coacute thể biểu diễn dưới nhiều dạng Khoacute xử lyacute Cần chuẩn hoacutea

Số chấm động theo chuẩn IEEE 754 Cơ số 2 Coacute 2 dạng

Chiacutenh xaacutec đơn 32 bit độ lệch mũ (bias) 127 Cocircng thức tiacutenh giaacute trị X = (-1)S x 1m x 2e-127

Chiacutenh xaacutec keacutep 64 bit độ lệch mũ (bias) 1023 Cocircng thức tiacutenh giaacute trị X = (-1)S x 1m x 2e-1023

Số chấm động theo chuẩn IEEE 754

Caacutec quy ước đặc biệt

Caacutec bit của e bằng 0 caacutec bit của m bằng 0 thigrave X= plusmn 0 x000 0000 0000 0000 0000 0000 0000 0000 X= plusmn 0

Caacutec bit của e bằng 1 caacutec bit của m bằng 0 thigrave X= plusmn infin x111 1111 1000 0000 0000 0000 0000 0000 1048774 X= plusmn infin

Caacutec bit của e bằng 1 cograven m coacute iacutet nhất 1 bit bằng 1 thigrave noacute khocircng biểu diễn cho số nagraveo cả (NaN ndash not a number)

Biểu diễn kyacute tự

Bộ matilde ASCII (American Standard Code for Information Interchange) Do ANSI (American National Standard Institute)

thiết kế Bộ matilde 8 bit coacute thể matilde hoacutea được 28 =256 kyacute tự

coacute matilde từ 0016 divide FF16 trong đoacute 128 kyacute tự chuẩn coacute matilde từ 0016 divide 7F16 128 kyacute tự mở rộng coacute matilde từ 8016 divide FF16

Bộ matilde Unicode

Bộ matilde ASCII Caacutec kyacute tự chuẩn

26 chữ caacutei hoa lsquoArsquo đến lsquoZrsquo coacute matilde từ 4116 đến 5A16 (65 đến 90) lsquoArsquo 1048774 0100 0001 = 4116 lsquoBrsquo 1048774 0100 0010 = 4216 lsquoZrsquo 1048774 0101 1010 = 5A16

26 chữ caacutei thường lsquoarsquo đến lsquozrsquo coacute matilde từ 6116 đến 7A16 (97 đến 122) lsquoarsquo 1048774 0110 0001 = 6116 lsquobrsquo 1048774 0110 0010 = 6216 lsquozrsquo 1048774 0111 1010 = 7A16

10 chữ số thập phacircn từ 0 đến 9 coacute matilde từ 3016 đến 3916 (48 đến 57) lsquo0rsquo 1048774 0011 0000 = 3016 lsquo1rsquo 1048774 0011 0001 = 3116 lsquo9rsquo 1048774 0011 1001 = 3916

Bộ matilde hợp nhất Unicode

Do caacutec hatildeng maacutey tiacutenh hagraveng đầu thiết kế Bộ matilde 16-bit Bộ matilde đa ngocircn ngữ Coacute hỗ trợ caacutec kyacute tự tiếng Việt

Page 12: Kiến trúc máy tính

Tổng quaacutet

Chuyển đổi caacutec hệ số

Chuyển đổi caacutec hệ số

Phương phaacutep chuyển đổi

Phương phaacutep chuyển đổi

Biểu diễn thocircng tin tronghệ nhị phacircn

BIT (BInary digiT)

0 1 BYTE = tổ hợp 8 bit

01001101 11111111 WORD = tổ hợp nhiều bit

10110 1011100101 1 KiloByte (KB) = 1024 byte = 210 byte 1 MegaByte (MB) = 1024 KB = 220 byte 1 GigaByte (GB) = 1024 MB = 230 byte

32 Matilde hoaacute vagrave lưu trữ dữ liệu trong maacutey tiacutenh

Nguyecircn tắc chung về matilde hoaacute dữ liệu Mọi dữ liệu đưa vagraveo maacutey tiacutenh đều được matilde hoaacute

thagravenh số nhị phacircn Caacutec loại dữ liệu

Dữ liệu nhacircn tạo do con người quy ước Dữ liệu số nguyecircn matilde hoaacute theo một số chuẩnqui ước Dữ liệu số thực matilde hoaacute bằng số dấu chấm động Dữ liệu kyacute tự matilde hoaacute theo bộ matilde kyacute tự

Dữ liệu tự nhiecircn tồn tại khaacutech quan với con người

Matilde hoacutea thocircng tin đầu vagraveo

Matilde hoacutea thocircng tin đầu vagraveo

Thứ tự lưu trữ caacutec byte của dữ liệu

Bộ nhớ chiacutenh thường được tổ chức theo byte Độ dagravei từ dữ liệu coacute thể chiếm từ một đến

nhiều byterArr cần phải biết thứ tự lưu trữ caacutec byte trong bộ nhớ

chiacutenh với caacutec dữ liệu nhiều byte

Thứ tự lưu trữ caacutec byte của dữ liệu

Coacute 2 caacutech lưu trữ Lưu trữ đầu nhỏ (Little-endian) Byte thấp được lưu trữ ở

ngăn nhớ coacute địa chỉ nhỏ hơn byte cao được lưu trữ ở ngăn nhớ coacute địa chỉ lớn hơn

Lưu trữ đầu to (Big-endian) Byte cao được lưu trữ ở ngăn nhớ coacute địa chỉ nhỏ hơn byte thấp được lưu trữ ở ngăn nhớ coacute địa chỉ lớn hơn

Intel 80x86 vagrave caacutec Pentium Little-endianrArr Motorola 680x0 vagrave caacutec bộ xử lyacute RISC Big-endianrArr Power PC vagrave Itanium cả hairArr

33 Biểu diễn số nguyecircn

Coacute hai loại số nguyecircn Số nguyecircn khocircng dấu (Unsigned Integer) Số nguyecircn coacute dấu (Signed Integer)

Biểu diễn số nguyecircn khocircng dấu Dugraveng n bit biểu diễn số nguyecircn khocircng dấu A

an-1an-2hellipa2a1a0

Giaacute trị của A được tiacutenh như sau Dải biểu diễn của A 0 -- 2n-1

Số 8 bit coacute giaacute trị 0 divide 255 Số 16 bit coacute giaacute trị 0 divide 65 535 Số 32 bit coacute giaacute trị 0 divide 4 294 967 295

1

0

2n

i

iiaA

Biểu diễn số nguyecircn khocircng dấun=8 bit

Biểu diễn được caacutec giaacute trị từ 0 đến 255 0000 0000 = 0 Chuacute yacute 0000 0001 = 1 1111 1111 0000 0010 = 2 + 0000 0001 0000 0011 = 3 1 0000 0000 hellip Vậy 255 + 1 = 0 1111 1111 = 255 do tragraven nhớ ra ngoagravei

Biểu diễn số nguyecircn coacute dấu

Số bugrave một vagrave Số bugrave hai Giả sử A lagrave một số nhị phacircn ta coacute Số bugrave một của A nhận được bằng caacutech đảo giaacute trị caacutec bit

của A (Số bugrave hai của A) = (Số bugrave một của A) + 1

Viacute dụ với n= 8 bit Giả sử coacute A = 0010 0101 Số bugrave một của A = 1101 1010

+ 1 Số bugrave hai của A = 1101 1011

Vigrave A + (Số bugrave hai của A) = 0 dugraveng số bugrave hai để biểu diễn cho số acircm

Biểu diễn số nguyecircn coacute dấu

Biểu diễn số nguyecircn coacute dấu bằng matilde bugrave hai Dugraveng n bit biểu diễn số nguyecircn coacute dấu A

an-1an-2hellipa2a1a0

Qui ước chọn bit coacute trọng số cao nhất (MSB) lagravem bit dấu Với A lagrave số dương bit an-1 = 0 caacutec bit cograven lại biểu diễn

độ lớn như số khocircng dấu Với A lagrave số acircm được biểu diễn bằng số bugrave hai của số

dương tương ứng vigrave vậy bit an-1 = 1

Biểu diễn số nguyecircn coacute dấu

Dạng tổng quaacutet của số nguyecircn A

an-1an-2hellipa2a1a0

Giaacute trị của A được xaacutec định như sau

Dải biểu diễn -2n-1 divide 2n-1-1 Số 8 bit coacute dấu coacute giaacute trị -128 divide +127 Số 16 bit coacute dấu coacute giaacute trị -32768 divide +32767

2

0

11 22

n

i

ii

nn aaA

Biểu diễn số nguyecircn coacute dấu n = 8 bit Biểu diễn được caacutec giaacute trị từ -128 đến +127 0000 0000 = 0 0000 0001 = +1 0000 0010 = +2 Chuacute yacute 0000 0011 = +3 +127 + 1 = -128 hellip -128 - 1 = +127 0111 1111 = +127 do tragraven xảy ra 1000 0000 = - 128 1000 0001 = - 127 hellip 1111 1110 = -2 1111 1111 = -1

Biểu diễn số nguyecircn coacute dấu

Chuyển đổi từ byte thagravenh word Đối với số dương

+19 = 0001 0011 (8 bit) +19 = 0000 0000 0001 0011 (16 bit)thecircm 8 bit 0 becircn traacutei

Đối với số acircm - 19 = 1110 1101 (8 bit) - 19 = 1111 1111 1110 1101 (16 bit)thecircm 8 bit 1 becircn traacutei

Với n=32 bit biểu diễn từ -231 đến 231-1 Với n=64 bit biểu diễn từ -263 đến 263-1

Biểu diễn số nguyecircn theo matilde BCD Binary Coded Decimal Code Số BCD được dugraveng để tiacutenh toaacuten trecircn số thập phacircn

trong hệ nhị phacircn Số BCD lagrave số viết theo hệ 16 nhưng giaacute trị tiacutenh theo

hệ 10 Số 12BCD được viết trong hệ 2 lagrave 0001 0010 nhưng coacute giaacute

trị lagrave 12 thay vigrave 18 (1216= 1810) Dugraveng 4 bit để matilde hoaacute cho caacutec chữ số thập phacircn từ 0 đến 9

0 0000 3 0011 6 0110 9 10011 0001 4 0100 7 0111 2 0010 5 0101 8 1000

Coacute 6 tổ hợp khocircng sử dụng 1010 1011 1100 1101 1110 1111

Caacutec kiểu lưu trữ số BCD

BCD khocircng goacutei (Unpacked BCD) Mỗi số BCD 4-bit được lưu trữ trong 4-bit thấp

của mỗi byte Viacute dụ Số 35 được lưu trữ 2 byte

0011 0101

BCD goacutei (Packed BCD) Hai số BCD được lưu trữ trong 1 byte Viacute dụ số 35 được lưu trữ 1 byte

0 0 1 1 0 1 0 1

Thực hiện caacutec pheacutep toaacuten số học với số nguyecircn Pheacutep cộng Pheacutep đảo dấu

Pheacutep đảo dấu trong maacutey tiacutenh thực chất lagrave lấy bugrave 2 Pheacutep trừ Nhacircn số nguyecircn

khocircng dấu coacute dấu

Thuật toaacuten nhacircn nhanh Booth Chia số nguyecircn

khocircng dấu coacute dấu

Số dấu chấm động

Số chấm động (floating point) dugraveng để tiacutenh toaacuten trecircn số thực một số thực X được biểu diễn theo kiểu số dấu chấm động

như sauX = plusmn m Bplusmne

m lagrave phần định trị (Mantissa) B lagrave cơ số (base) e lagrave phần mũ (Exponent)

m (mantissa) quyết định độ chiacutenh xaacutec B (base) e (exponent) quyết định độ lớnnhỏ

Số dấu chấm động

Một giaacute trị coacute thể biểu diễn dưới nhiều dạng Khoacute xử lyacute Cần chuẩn hoacutea

Số chấm động theo chuẩn IEEE 754 Cơ số 2 Coacute 2 dạng

Chiacutenh xaacutec đơn 32 bit độ lệch mũ (bias) 127 Cocircng thức tiacutenh giaacute trị X = (-1)S x 1m x 2e-127

Chiacutenh xaacutec keacutep 64 bit độ lệch mũ (bias) 1023 Cocircng thức tiacutenh giaacute trị X = (-1)S x 1m x 2e-1023

Số chấm động theo chuẩn IEEE 754

Caacutec quy ước đặc biệt

Caacutec bit của e bằng 0 caacutec bit của m bằng 0 thigrave X= plusmn 0 x000 0000 0000 0000 0000 0000 0000 0000 X= plusmn 0

Caacutec bit của e bằng 1 caacutec bit của m bằng 0 thigrave X= plusmn infin x111 1111 1000 0000 0000 0000 0000 0000 1048774 X= plusmn infin

Caacutec bit của e bằng 1 cograven m coacute iacutet nhất 1 bit bằng 1 thigrave noacute khocircng biểu diễn cho số nagraveo cả (NaN ndash not a number)

Biểu diễn kyacute tự

Bộ matilde ASCII (American Standard Code for Information Interchange) Do ANSI (American National Standard Institute)

thiết kế Bộ matilde 8 bit coacute thể matilde hoacutea được 28 =256 kyacute tự

coacute matilde từ 0016 divide FF16 trong đoacute 128 kyacute tự chuẩn coacute matilde từ 0016 divide 7F16 128 kyacute tự mở rộng coacute matilde từ 8016 divide FF16

Bộ matilde Unicode

Bộ matilde ASCII Caacutec kyacute tự chuẩn

26 chữ caacutei hoa lsquoArsquo đến lsquoZrsquo coacute matilde từ 4116 đến 5A16 (65 đến 90) lsquoArsquo 1048774 0100 0001 = 4116 lsquoBrsquo 1048774 0100 0010 = 4216 lsquoZrsquo 1048774 0101 1010 = 5A16

26 chữ caacutei thường lsquoarsquo đến lsquozrsquo coacute matilde từ 6116 đến 7A16 (97 đến 122) lsquoarsquo 1048774 0110 0001 = 6116 lsquobrsquo 1048774 0110 0010 = 6216 lsquozrsquo 1048774 0111 1010 = 7A16

10 chữ số thập phacircn từ 0 đến 9 coacute matilde từ 3016 đến 3916 (48 đến 57) lsquo0rsquo 1048774 0011 0000 = 3016 lsquo1rsquo 1048774 0011 0001 = 3116 lsquo9rsquo 1048774 0011 1001 = 3916

Bộ matilde hợp nhất Unicode

Do caacutec hatildeng maacutey tiacutenh hagraveng đầu thiết kế Bộ matilde 16-bit Bộ matilde đa ngocircn ngữ Coacute hỗ trợ caacutec kyacute tự tiếng Việt

Page 13: Kiến trúc máy tính

Chuyển đổi caacutec hệ số

Chuyển đổi caacutec hệ số

Phương phaacutep chuyển đổi

Phương phaacutep chuyển đổi

Biểu diễn thocircng tin tronghệ nhị phacircn

BIT (BInary digiT)

0 1 BYTE = tổ hợp 8 bit

01001101 11111111 WORD = tổ hợp nhiều bit

10110 1011100101 1 KiloByte (KB) = 1024 byte = 210 byte 1 MegaByte (MB) = 1024 KB = 220 byte 1 GigaByte (GB) = 1024 MB = 230 byte

32 Matilde hoaacute vagrave lưu trữ dữ liệu trong maacutey tiacutenh

Nguyecircn tắc chung về matilde hoaacute dữ liệu Mọi dữ liệu đưa vagraveo maacutey tiacutenh đều được matilde hoaacute

thagravenh số nhị phacircn Caacutec loại dữ liệu

Dữ liệu nhacircn tạo do con người quy ước Dữ liệu số nguyecircn matilde hoaacute theo một số chuẩnqui ước Dữ liệu số thực matilde hoaacute bằng số dấu chấm động Dữ liệu kyacute tự matilde hoaacute theo bộ matilde kyacute tự

Dữ liệu tự nhiecircn tồn tại khaacutech quan với con người

Matilde hoacutea thocircng tin đầu vagraveo

Matilde hoacutea thocircng tin đầu vagraveo

Thứ tự lưu trữ caacutec byte của dữ liệu

Bộ nhớ chiacutenh thường được tổ chức theo byte Độ dagravei từ dữ liệu coacute thể chiếm từ một đến

nhiều byterArr cần phải biết thứ tự lưu trữ caacutec byte trong bộ nhớ

chiacutenh với caacutec dữ liệu nhiều byte

Thứ tự lưu trữ caacutec byte của dữ liệu

Coacute 2 caacutech lưu trữ Lưu trữ đầu nhỏ (Little-endian) Byte thấp được lưu trữ ở

ngăn nhớ coacute địa chỉ nhỏ hơn byte cao được lưu trữ ở ngăn nhớ coacute địa chỉ lớn hơn

Lưu trữ đầu to (Big-endian) Byte cao được lưu trữ ở ngăn nhớ coacute địa chỉ nhỏ hơn byte thấp được lưu trữ ở ngăn nhớ coacute địa chỉ lớn hơn

Intel 80x86 vagrave caacutec Pentium Little-endianrArr Motorola 680x0 vagrave caacutec bộ xử lyacute RISC Big-endianrArr Power PC vagrave Itanium cả hairArr

33 Biểu diễn số nguyecircn

Coacute hai loại số nguyecircn Số nguyecircn khocircng dấu (Unsigned Integer) Số nguyecircn coacute dấu (Signed Integer)

Biểu diễn số nguyecircn khocircng dấu Dugraveng n bit biểu diễn số nguyecircn khocircng dấu A

an-1an-2hellipa2a1a0

Giaacute trị của A được tiacutenh như sau Dải biểu diễn của A 0 -- 2n-1

Số 8 bit coacute giaacute trị 0 divide 255 Số 16 bit coacute giaacute trị 0 divide 65 535 Số 32 bit coacute giaacute trị 0 divide 4 294 967 295

1

0

2n

i

iiaA

Biểu diễn số nguyecircn khocircng dấun=8 bit

Biểu diễn được caacutec giaacute trị từ 0 đến 255 0000 0000 = 0 Chuacute yacute 0000 0001 = 1 1111 1111 0000 0010 = 2 + 0000 0001 0000 0011 = 3 1 0000 0000 hellip Vậy 255 + 1 = 0 1111 1111 = 255 do tragraven nhớ ra ngoagravei

Biểu diễn số nguyecircn coacute dấu

Số bugrave một vagrave Số bugrave hai Giả sử A lagrave một số nhị phacircn ta coacute Số bugrave một của A nhận được bằng caacutech đảo giaacute trị caacutec bit

của A (Số bugrave hai của A) = (Số bugrave một của A) + 1

Viacute dụ với n= 8 bit Giả sử coacute A = 0010 0101 Số bugrave một của A = 1101 1010

+ 1 Số bugrave hai của A = 1101 1011

Vigrave A + (Số bugrave hai của A) = 0 dugraveng số bugrave hai để biểu diễn cho số acircm

Biểu diễn số nguyecircn coacute dấu

Biểu diễn số nguyecircn coacute dấu bằng matilde bugrave hai Dugraveng n bit biểu diễn số nguyecircn coacute dấu A

an-1an-2hellipa2a1a0

Qui ước chọn bit coacute trọng số cao nhất (MSB) lagravem bit dấu Với A lagrave số dương bit an-1 = 0 caacutec bit cograven lại biểu diễn

độ lớn như số khocircng dấu Với A lagrave số acircm được biểu diễn bằng số bugrave hai của số

dương tương ứng vigrave vậy bit an-1 = 1

Biểu diễn số nguyecircn coacute dấu

Dạng tổng quaacutet của số nguyecircn A

an-1an-2hellipa2a1a0

Giaacute trị của A được xaacutec định như sau

Dải biểu diễn -2n-1 divide 2n-1-1 Số 8 bit coacute dấu coacute giaacute trị -128 divide +127 Số 16 bit coacute dấu coacute giaacute trị -32768 divide +32767

2

0

11 22

n

i

ii

nn aaA

Biểu diễn số nguyecircn coacute dấu n = 8 bit Biểu diễn được caacutec giaacute trị từ -128 đến +127 0000 0000 = 0 0000 0001 = +1 0000 0010 = +2 Chuacute yacute 0000 0011 = +3 +127 + 1 = -128 hellip -128 - 1 = +127 0111 1111 = +127 do tragraven xảy ra 1000 0000 = - 128 1000 0001 = - 127 hellip 1111 1110 = -2 1111 1111 = -1

Biểu diễn số nguyecircn coacute dấu

Chuyển đổi từ byte thagravenh word Đối với số dương

+19 = 0001 0011 (8 bit) +19 = 0000 0000 0001 0011 (16 bit)thecircm 8 bit 0 becircn traacutei

Đối với số acircm - 19 = 1110 1101 (8 bit) - 19 = 1111 1111 1110 1101 (16 bit)thecircm 8 bit 1 becircn traacutei

Với n=32 bit biểu diễn từ -231 đến 231-1 Với n=64 bit biểu diễn từ -263 đến 263-1

Biểu diễn số nguyecircn theo matilde BCD Binary Coded Decimal Code Số BCD được dugraveng để tiacutenh toaacuten trecircn số thập phacircn

trong hệ nhị phacircn Số BCD lagrave số viết theo hệ 16 nhưng giaacute trị tiacutenh theo

hệ 10 Số 12BCD được viết trong hệ 2 lagrave 0001 0010 nhưng coacute giaacute

trị lagrave 12 thay vigrave 18 (1216= 1810) Dugraveng 4 bit để matilde hoaacute cho caacutec chữ số thập phacircn từ 0 đến 9

0 0000 3 0011 6 0110 9 10011 0001 4 0100 7 0111 2 0010 5 0101 8 1000

Coacute 6 tổ hợp khocircng sử dụng 1010 1011 1100 1101 1110 1111

Caacutec kiểu lưu trữ số BCD

BCD khocircng goacutei (Unpacked BCD) Mỗi số BCD 4-bit được lưu trữ trong 4-bit thấp

của mỗi byte Viacute dụ Số 35 được lưu trữ 2 byte

0011 0101

BCD goacutei (Packed BCD) Hai số BCD được lưu trữ trong 1 byte Viacute dụ số 35 được lưu trữ 1 byte

0 0 1 1 0 1 0 1

Thực hiện caacutec pheacutep toaacuten số học với số nguyecircn Pheacutep cộng Pheacutep đảo dấu

Pheacutep đảo dấu trong maacutey tiacutenh thực chất lagrave lấy bugrave 2 Pheacutep trừ Nhacircn số nguyecircn

khocircng dấu coacute dấu

Thuật toaacuten nhacircn nhanh Booth Chia số nguyecircn

khocircng dấu coacute dấu

Số dấu chấm động

Số chấm động (floating point) dugraveng để tiacutenh toaacuten trecircn số thực một số thực X được biểu diễn theo kiểu số dấu chấm động

như sauX = plusmn m Bplusmne

m lagrave phần định trị (Mantissa) B lagrave cơ số (base) e lagrave phần mũ (Exponent)

m (mantissa) quyết định độ chiacutenh xaacutec B (base) e (exponent) quyết định độ lớnnhỏ

Số dấu chấm động

Một giaacute trị coacute thể biểu diễn dưới nhiều dạng Khoacute xử lyacute Cần chuẩn hoacutea

Số chấm động theo chuẩn IEEE 754 Cơ số 2 Coacute 2 dạng

Chiacutenh xaacutec đơn 32 bit độ lệch mũ (bias) 127 Cocircng thức tiacutenh giaacute trị X = (-1)S x 1m x 2e-127

Chiacutenh xaacutec keacutep 64 bit độ lệch mũ (bias) 1023 Cocircng thức tiacutenh giaacute trị X = (-1)S x 1m x 2e-1023

Số chấm động theo chuẩn IEEE 754

Caacutec quy ước đặc biệt

Caacutec bit của e bằng 0 caacutec bit của m bằng 0 thigrave X= plusmn 0 x000 0000 0000 0000 0000 0000 0000 0000 X= plusmn 0

Caacutec bit của e bằng 1 caacutec bit của m bằng 0 thigrave X= plusmn infin x111 1111 1000 0000 0000 0000 0000 0000 1048774 X= plusmn infin

Caacutec bit của e bằng 1 cograven m coacute iacutet nhất 1 bit bằng 1 thigrave noacute khocircng biểu diễn cho số nagraveo cả (NaN ndash not a number)

Biểu diễn kyacute tự

Bộ matilde ASCII (American Standard Code for Information Interchange) Do ANSI (American National Standard Institute)

thiết kế Bộ matilde 8 bit coacute thể matilde hoacutea được 28 =256 kyacute tự

coacute matilde từ 0016 divide FF16 trong đoacute 128 kyacute tự chuẩn coacute matilde từ 0016 divide 7F16 128 kyacute tự mở rộng coacute matilde từ 8016 divide FF16

Bộ matilde Unicode

Bộ matilde ASCII Caacutec kyacute tự chuẩn

26 chữ caacutei hoa lsquoArsquo đến lsquoZrsquo coacute matilde từ 4116 đến 5A16 (65 đến 90) lsquoArsquo 1048774 0100 0001 = 4116 lsquoBrsquo 1048774 0100 0010 = 4216 lsquoZrsquo 1048774 0101 1010 = 5A16

26 chữ caacutei thường lsquoarsquo đến lsquozrsquo coacute matilde từ 6116 đến 7A16 (97 đến 122) lsquoarsquo 1048774 0110 0001 = 6116 lsquobrsquo 1048774 0110 0010 = 6216 lsquozrsquo 1048774 0111 1010 = 7A16

10 chữ số thập phacircn từ 0 đến 9 coacute matilde từ 3016 đến 3916 (48 đến 57) lsquo0rsquo 1048774 0011 0000 = 3016 lsquo1rsquo 1048774 0011 0001 = 3116 lsquo9rsquo 1048774 0011 1001 = 3916

Bộ matilde hợp nhất Unicode

Do caacutec hatildeng maacutey tiacutenh hagraveng đầu thiết kế Bộ matilde 16-bit Bộ matilde đa ngocircn ngữ Coacute hỗ trợ caacutec kyacute tự tiếng Việt

Page 14: Kiến trúc máy tính

Chuyển đổi caacutec hệ số

Phương phaacutep chuyển đổi

Phương phaacutep chuyển đổi

Biểu diễn thocircng tin tronghệ nhị phacircn

BIT (BInary digiT)

0 1 BYTE = tổ hợp 8 bit

01001101 11111111 WORD = tổ hợp nhiều bit

10110 1011100101 1 KiloByte (KB) = 1024 byte = 210 byte 1 MegaByte (MB) = 1024 KB = 220 byte 1 GigaByte (GB) = 1024 MB = 230 byte

32 Matilde hoaacute vagrave lưu trữ dữ liệu trong maacutey tiacutenh

Nguyecircn tắc chung về matilde hoaacute dữ liệu Mọi dữ liệu đưa vagraveo maacutey tiacutenh đều được matilde hoaacute

thagravenh số nhị phacircn Caacutec loại dữ liệu

Dữ liệu nhacircn tạo do con người quy ước Dữ liệu số nguyecircn matilde hoaacute theo một số chuẩnqui ước Dữ liệu số thực matilde hoaacute bằng số dấu chấm động Dữ liệu kyacute tự matilde hoaacute theo bộ matilde kyacute tự

Dữ liệu tự nhiecircn tồn tại khaacutech quan với con người

Matilde hoacutea thocircng tin đầu vagraveo

Matilde hoacutea thocircng tin đầu vagraveo

Thứ tự lưu trữ caacutec byte của dữ liệu

Bộ nhớ chiacutenh thường được tổ chức theo byte Độ dagravei từ dữ liệu coacute thể chiếm từ một đến

nhiều byterArr cần phải biết thứ tự lưu trữ caacutec byte trong bộ nhớ

chiacutenh với caacutec dữ liệu nhiều byte

Thứ tự lưu trữ caacutec byte của dữ liệu

Coacute 2 caacutech lưu trữ Lưu trữ đầu nhỏ (Little-endian) Byte thấp được lưu trữ ở

ngăn nhớ coacute địa chỉ nhỏ hơn byte cao được lưu trữ ở ngăn nhớ coacute địa chỉ lớn hơn

Lưu trữ đầu to (Big-endian) Byte cao được lưu trữ ở ngăn nhớ coacute địa chỉ nhỏ hơn byte thấp được lưu trữ ở ngăn nhớ coacute địa chỉ lớn hơn

Intel 80x86 vagrave caacutec Pentium Little-endianrArr Motorola 680x0 vagrave caacutec bộ xử lyacute RISC Big-endianrArr Power PC vagrave Itanium cả hairArr

33 Biểu diễn số nguyecircn

Coacute hai loại số nguyecircn Số nguyecircn khocircng dấu (Unsigned Integer) Số nguyecircn coacute dấu (Signed Integer)

Biểu diễn số nguyecircn khocircng dấu Dugraveng n bit biểu diễn số nguyecircn khocircng dấu A

an-1an-2hellipa2a1a0

Giaacute trị của A được tiacutenh như sau Dải biểu diễn của A 0 -- 2n-1

Số 8 bit coacute giaacute trị 0 divide 255 Số 16 bit coacute giaacute trị 0 divide 65 535 Số 32 bit coacute giaacute trị 0 divide 4 294 967 295

1

0

2n

i

iiaA

Biểu diễn số nguyecircn khocircng dấun=8 bit

Biểu diễn được caacutec giaacute trị từ 0 đến 255 0000 0000 = 0 Chuacute yacute 0000 0001 = 1 1111 1111 0000 0010 = 2 + 0000 0001 0000 0011 = 3 1 0000 0000 hellip Vậy 255 + 1 = 0 1111 1111 = 255 do tragraven nhớ ra ngoagravei

Biểu diễn số nguyecircn coacute dấu

Số bugrave một vagrave Số bugrave hai Giả sử A lagrave một số nhị phacircn ta coacute Số bugrave một của A nhận được bằng caacutech đảo giaacute trị caacutec bit

của A (Số bugrave hai của A) = (Số bugrave một của A) + 1

Viacute dụ với n= 8 bit Giả sử coacute A = 0010 0101 Số bugrave một của A = 1101 1010

+ 1 Số bugrave hai của A = 1101 1011

Vigrave A + (Số bugrave hai của A) = 0 dugraveng số bugrave hai để biểu diễn cho số acircm

Biểu diễn số nguyecircn coacute dấu

Biểu diễn số nguyecircn coacute dấu bằng matilde bugrave hai Dugraveng n bit biểu diễn số nguyecircn coacute dấu A

an-1an-2hellipa2a1a0

Qui ước chọn bit coacute trọng số cao nhất (MSB) lagravem bit dấu Với A lagrave số dương bit an-1 = 0 caacutec bit cograven lại biểu diễn

độ lớn như số khocircng dấu Với A lagrave số acircm được biểu diễn bằng số bugrave hai của số

dương tương ứng vigrave vậy bit an-1 = 1

Biểu diễn số nguyecircn coacute dấu

Dạng tổng quaacutet của số nguyecircn A

an-1an-2hellipa2a1a0

Giaacute trị của A được xaacutec định như sau

Dải biểu diễn -2n-1 divide 2n-1-1 Số 8 bit coacute dấu coacute giaacute trị -128 divide +127 Số 16 bit coacute dấu coacute giaacute trị -32768 divide +32767

2

0

11 22

n

i

ii

nn aaA

Biểu diễn số nguyecircn coacute dấu n = 8 bit Biểu diễn được caacutec giaacute trị từ -128 đến +127 0000 0000 = 0 0000 0001 = +1 0000 0010 = +2 Chuacute yacute 0000 0011 = +3 +127 + 1 = -128 hellip -128 - 1 = +127 0111 1111 = +127 do tragraven xảy ra 1000 0000 = - 128 1000 0001 = - 127 hellip 1111 1110 = -2 1111 1111 = -1

Biểu diễn số nguyecircn coacute dấu

Chuyển đổi từ byte thagravenh word Đối với số dương

+19 = 0001 0011 (8 bit) +19 = 0000 0000 0001 0011 (16 bit)thecircm 8 bit 0 becircn traacutei

Đối với số acircm - 19 = 1110 1101 (8 bit) - 19 = 1111 1111 1110 1101 (16 bit)thecircm 8 bit 1 becircn traacutei

Với n=32 bit biểu diễn từ -231 đến 231-1 Với n=64 bit biểu diễn từ -263 đến 263-1

Biểu diễn số nguyecircn theo matilde BCD Binary Coded Decimal Code Số BCD được dugraveng để tiacutenh toaacuten trecircn số thập phacircn

trong hệ nhị phacircn Số BCD lagrave số viết theo hệ 16 nhưng giaacute trị tiacutenh theo

hệ 10 Số 12BCD được viết trong hệ 2 lagrave 0001 0010 nhưng coacute giaacute

trị lagrave 12 thay vigrave 18 (1216= 1810) Dugraveng 4 bit để matilde hoaacute cho caacutec chữ số thập phacircn từ 0 đến 9

0 0000 3 0011 6 0110 9 10011 0001 4 0100 7 0111 2 0010 5 0101 8 1000

Coacute 6 tổ hợp khocircng sử dụng 1010 1011 1100 1101 1110 1111

Caacutec kiểu lưu trữ số BCD

BCD khocircng goacutei (Unpacked BCD) Mỗi số BCD 4-bit được lưu trữ trong 4-bit thấp

của mỗi byte Viacute dụ Số 35 được lưu trữ 2 byte

0011 0101

BCD goacutei (Packed BCD) Hai số BCD được lưu trữ trong 1 byte Viacute dụ số 35 được lưu trữ 1 byte

0 0 1 1 0 1 0 1

Thực hiện caacutec pheacutep toaacuten số học với số nguyecircn Pheacutep cộng Pheacutep đảo dấu

Pheacutep đảo dấu trong maacutey tiacutenh thực chất lagrave lấy bugrave 2 Pheacutep trừ Nhacircn số nguyecircn

khocircng dấu coacute dấu

Thuật toaacuten nhacircn nhanh Booth Chia số nguyecircn

khocircng dấu coacute dấu

Số dấu chấm động

Số chấm động (floating point) dugraveng để tiacutenh toaacuten trecircn số thực một số thực X được biểu diễn theo kiểu số dấu chấm động

như sauX = plusmn m Bplusmne

m lagrave phần định trị (Mantissa) B lagrave cơ số (base) e lagrave phần mũ (Exponent)

m (mantissa) quyết định độ chiacutenh xaacutec B (base) e (exponent) quyết định độ lớnnhỏ

Số dấu chấm động

Một giaacute trị coacute thể biểu diễn dưới nhiều dạng Khoacute xử lyacute Cần chuẩn hoacutea

Số chấm động theo chuẩn IEEE 754 Cơ số 2 Coacute 2 dạng

Chiacutenh xaacutec đơn 32 bit độ lệch mũ (bias) 127 Cocircng thức tiacutenh giaacute trị X = (-1)S x 1m x 2e-127

Chiacutenh xaacutec keacutep 64 bit độ lệch mũ (bias) 1023 Cocircng thức tiacutenh giaacute trị X = (-1)S x 1m x 2e-1023

Số chấm động theo chuẩn IEEE 754

Caacutec quy ước đặc biệt

Caacutec bit của e bằng 0 caacutec bit của m bằng 0 thigrave X= plusmn 0 x000 0000 0000 0000 0000 0000 0000 0000 X= plusmn 0

Caacutec bit của e bằng 1 caacutec bit của m bằng 0 thigrave X= plusmn infin x111 1111 1000 0000 0000 0000 0000 0000 1048774 X= plusmn infin

Caacutec bit của e bằng 1 cograven m coacute iacutet nhất 1 bit bằng 1 thigrave noacute khocircng biểu diễn cho số nagraveo cả (NaN ndash not a number)

Biểu diễn kyacute tự

Bộ matilde ASCII (American Standard Code for Information Interchange) Do ANSI (American National Standard Institute)

thiết kế Bộ matilde 8 bit coacute thể matilde hoacutea được 28 =256 kyacute tự

coacute matilde từ 0016 divide FF16 trong đoacute 128 kyacute tự chuẩn coacute matilde từ 0016 divide 7F16 128 kyacute tự mở rộng coacute matilde từ 8016 divide FF16

Bộ matilde Unicode

Bộ matilde ASCII Caacutec kyacute tự chuẩn

26 chữ caacutei hoa lsquoArsquo đến lsquoZrsquo coacute matilde từ 4116 đến 5A16 (65 đến 90) lsquoArsquo 1048774 0100 0001 = 4116 lsquoBrsquo 1048774 0100 0010 = 4216 lsquoZrsquo 1048774 0101 1010 = 5A16

26 chữ caacutei thường lsquoarsquo đến lsquozrsquo coacute matilde từ 6116 đến 7A16 (97 đến 122) lsquoarsquo 1048774 0110 0001 = 6116 lsquobrsquo 1048774 0110 0010 = 6216 lsquozrsquo 1048774 0111 1010 = 7A16

10 chữ số thập phacircn từ 0 đến 9 coacute matilde từ 3016 đến 3916 (48 đến 57) lsquo0rsquo 1048774 0011 0000 = 3016 lsquo1rsquo 1048774 0011 0001 = 3116 lsquo9rsquo 1048774 0011 1001 = 3916

Bộ matilde hợp nhất Unicode

Do caacutec hatildeng maacutey tiacutenh hagraveng đầu thiết kế Bộ matilde 16-bit Bộ matilde đa ngocircn ngữ Coacute hỗ trợ caacutec kyacute tự tiếng Việt

Page 15: Kiến trúc máy tính

Phương phaacutep chuyển đổi

Phương phaacutep chuyển đổi

Biểu diễn thocircng tin tronghệ nhị phacircn

BIT (BInary digiT)

0 1 BYTE = tổ hợp 8 bit

01001101 11111111 WORD = tổ hợp nhiều bit

10110 1011100101 1 KiloByte (KB) = 1024 byte = 210 byte 1 MegaByte (MB) = 1024 KB = 220 byte 1 GigaByte (GB) = 1024 MB = 230 byte

32 Matilde hoaacute vagrave lưu trữ dữ liệu trong maacutey tiacutenh

Nguyecircn tắc chung về matilde hoaacute dữ liệu Mọi dữ liệu đưa vagraveo maacutey tiacutenh đều được matilde hoaacute

thagravenh số nhị phacircn Caacutec loại dữ liệu

Dữ liệu nhacircn tạo do con người quy ước Dữ liệu số nguyecircn matilde hoaacute theo một số chuẩnqui ước Dữ liệu số thực matilde hoaacute bằng số dấu chấm động Dữ liệu kyacute tự matilde hoaacute theo bộ matilde kyacute tự

Dữ liệu tự nhiecircn tồn tại khaacutech quan với con người

Matilde hoacutea thocircng tin đầu vagraveo

Matilde hoacutea thocircng tin đầu vagraveo

Thứ tự lưu trữ caacutec byte của dữ liệu

Bộ nhớ chiacutenh thường được tổ chức theo byte Độ dagravei từ dữ liệu coacute thể chiếm từ một đến

nhiều byterArr cần phải biết thứ tự lưu trữ caacutec byte trong bộ nhớ

chiacutenh với caacutec dữ liệu nhiều byte

Thứ tự lưu trữ caacutec byte của dữ liệu

Coacute 2 caacutech lưu trữ Lưu trữ đầu nhỏ (Little-endian) Byte thấp được lưu trữ ở

ngăn nhớ coacute địa chỉ nhỏ hơn byte cao được lưu trữ ở ngăn nhớ coacute địa chỉ lớn hơn

Lưu trữ đầu to (Big-endian) Byte cao được lưu trữ ở ngăn nhớ coacute địa chỉ nhỏ hơn byte thấp được lưu trữ ở ngăn nhớ coacute địa chỉ lớn hơn

Intel 80x86 vagrave caacutec Pentium Little-endianrArr Motorola 680x0 vagrave caacutec bộ xử lyacute RISC Big-endianrArr Power PC vagrave Itanium cả hairArr

33 Biểu diễn số nguyecircn

Coacute hai loại số nguyecircn Số nguyecircn khocircng dấu (Unsigned Integer) Số nguyecircn coacute dấu (Signed Integer)

Biểu diễn số nguyecircn khocircng dấu Dugraveng n bit biểu diễn số nguyecircn khocircng dấu A

an-1an-2hellipa2a1a0

Giaacute trị của A được tiacutenh như sau Dải biểu diễn của A 0 -- 2n-1

Số 8 bit coacute giaacute trị 0 divide 255 Số 16 bit coacute giaacute trị 0 divide 65 535 Số 32 bit coacute giaacute trị 0 divide 4 294 967 295

1

0

2n

i

iiaA

Biểu diễn số nguyecircn khocircng dấun=8 bit

Biểu diễn được caacutec giaacute trị từ 0 đến 255 0000 0000 = 0 Chuacute yacute 0000 0001 = 1 1111 1111 0000 0010 = 2 + 0000 0001 0000 0011 = 3 1 0000 0000 hellip Vậy 255 + 1 = 0 1111 1111 = 255 do tragraven nhớ ra ngoagravei

Biểu diễn số nguyecircn coacute dấu

Số bugrave một vagrave Số bugrave hai Giả sử A lagrave một số nhị phacircn ta coacute Số bugrave một của A nhận được bằng caacutech đảo giaacute trị caacutec bit

của A (Số bugrave hai của A) = (Số bugrave một của A) + 1

Viacute dụ với n= 8 bit Giả sử coacute A = 0010 0101 Số bugrave một của A = 1101 1010

+ 1 Số bugrave hai của A = 1101 1011

Vigrave A + (Số bugrave hai của A) = 0 dugraveng số bugrave hai để biểu diễn cho số acircm

Biểu diễn số nguyecircn coacute dấu

Biểu diễn số nguyecircn coacute dấu bằng matilde bugrave hai Dugraveng n bit biểu diễn số nguyecircn coacute dấu A

an-1an-2hellipa2a1a0

Qui ước chọn bit coacute trọng số cao nhất (MSB) lagravem bit dấu Với A lagrave số dương bit an-1 = 0 caacutec bit cograven lại biểu diễn

độ lớn như số khocircng dấu Với A lagrave số acircm được biểu diễn bằng số bugrave hai của số

dương tương ứng vigrave vậy bit an-1 = 1

Biểu diễn số nguyecircn coacute dấu

Dạng tổng quaacutet của số nguyecircn A

an-1an-2hellipa2a1a0

Giaacute trị của A được xaacutec định như sau

Dải biểu diễn -2n-1 divide 2n-1-1 Số 8 bit coacute dấu coacute giaacute trị -128 divide +127 Số 16 bit coacute dấu coacute giaacute trị -32768 divide +32767

2

0

11 22

n

i

ii

nn aaA

Biểu diễn số nguyecircn coacute dấu n = 8 bit Biểu diễn được caacutec giaacute trị từ -128 đến +127 0000 0000 = 0 0000 0001 = +1 0000 0010 = +2 Chuacute yacute 0000 0011 = +3 +127 + 1 = -128 hellip -128 - 1 = +127 0111 1111 = +127 do tragraven xảy ra 1000 0000 = - 128 1000 0001 = - 127 hellip 1111 1110 = -2 1111 1111 = -1

Biểu diễn số nguyecircn coacute dấu

Chuyển đổi từ byte thagravenh word Đối với số dương

+19 = 0001 0011 (8 bit) +19 = 0000 0000 0001 0011 (16 bit)thecircm 8 bit 0 becircn traacutei

Đối với số acircm - 19 = 1110 1101 (8 bit) - 19 = 1111 1111 1110 1101 (16 bit)thecircm 8 bit 1 becircn traacutei

Với n=32 bit biểu diễn từ -231 đến 231-1 Với n=64 bit biểu diễn từ -263 đến 263-1

Biểu diễn số nguyecircn theo matilde BCD Binary Coded Decimal Code Số BCD được dugraveng để tiacutenh toaacuten trecircn số thập phacircn

trong hệ nhị phacircn Số BCD lagrave số viết theo hệ 16 nhưng giaacute trị tiacutenh theo

hệ 10 Số 12BCD được viết trong hệ 2 lagrave 0001 0010 nhưng coacute giaacute

trị lagrave 12 thay vigrave 18 (1216= 1810) Dugraveng 4 bit để matilde hoaacute cho caacutec chữ số thập phacircn từ 0 đến 9

0 0000 3 0011 6 0110 9 10011 0001 4 0100 7 0111 2 0010 5 0101 8 1000

Coacute 6 tổ hợp khocircng sử dụng 1010 1011 1100 1101 1110 1111

Caacutec kiểu lưu trữ số BCD

BCD khocircng goacutei (Unpacked BCD) Mỗi số BCD 4-bit được lưu trữ trong 4-bit thấp

của mỗi byte Viacute dụ Số 35 được lưu trữ 2 byte

0011 0101

BCD goacutei (Packed BCD) Hai số BCD được lưu trữ trong 1 byte Viacute dụ số 35 được lưu trữ 1 byte

0 0 1 1 0 1 0 1

Thực hiện caacutec pheacutep toaacuten số học với số nguyecircn Pheacutep cộng Pheacutep đảo dấu

Pheacutep đảo dấu trong maacutey tiacutenh thực chất lagrave lấy bugrave 2 Pheacutep trừ Nhacircn số nguyecircn

khocircng dấu coacute dấu

Thuật toaacuten nhacircn nhanh Booth Chia số nguyecircn

khocircng dấu coacute dấu

Số dấu chấm động

Số chấm động (floating point) dugraveng để tiacutenh toaacuten trecircn số thực một số thực X được biểu diễn theo kiểu số dấu chấm động

như sauX = plusmn m Bplusmne

m lagrave phần định trị (Mantissa) B lagrave cơ số (base) e lagrave phần mũ (Exponent)

m (mantissa) quyết định độ chiacutenh xaacutec B (base) e (exponent) quyết định độ lớnnhỏ

Số dấu chấm động

Một giaacute trị coacute thể biểu diễn dưới nhiều dạng Khoacute xử lyacute Cần chuẩn hoacutea

Số chấm động theo chuẩn IEEE 754 Cơ số 2 Coacute 2 dạng

Chiacutenh xaacutec đơn 32 bit độ lệch mũ (bias) 127 Cocircng thức tiacutenh giaacute trị X = (-1)S x 1m x 2e-127

Chiacutenh xaacutec keacutep 64 bit độ lệch mũ (bias) 1023 Cocircng thức tiacutenh giaacute trị X = (-1)S x 1m x 2e-1023

Số chấm động theo chuẩn IEEE 754

Caacutec quy ước đặc biệt

Caacutec bit của e bằng 0 caacutec bit của m bằng 0 thigrave X= plusmn 0 x000 0000 0000 0000 0000 0000 0000 0000 X= plusmn 0

Caacutec bit của e bằng 1 caacutec bit của m bằng 0 thigrave X= plusmn infin x111 1111 1000 0000 0000 0000 0000 0000 1048774 X= plusmn infin

Caacutec bit của e bằng 1 cograven m coacute iacutet nhất 1 bit bằng 1 thigrave noacute khocircng biểu diễn cho số nagraveo cả (NaN ndash not a number)

Biểu diễn kyacute tự

Bộ matilde ASCII (American Standard Code for Information Interchange) Do ANSI (American National Standard Institute)

thiết kế Bộ matilde 8 bit coacute thể matilde hoacutea được 28 =256 kyacute tự

coacute matilde từ 0016 divide FF16 trong đoacute 128 kyacute tự chuẩn coacute matilde từ 0016 divide 7F16 128 kyacute tự mở rộng coacute matilde từ 8016 divide FF16

Bộ matilde Unicode

Bộ matilde ASCII Caacutec kyacute tự chuẩn

26 chữ caacutei hoa lsquoArsquo đến lsquoZrsquo coacute matilde từ 4116 đến 5A16 (65 đến 90) lsquoArsquo 1048774 0100 0001 = 4116 lsquoBrsquo 1048774 0100 0010 = 4216 lsquoZrsquo 1048774 0101 1010 = 5A16

26 chữ caacutei thường lsquoarsquo đến lsquozrsquo coacute matilde từ 6116 đến 7A16 (97 đến 122) lsquoarsquo 1048774 0110 0001 = 6116 lsquobrsquo 1048774 0110 0010 = 6216 lsquozrsquo 1048774 0111 1010 = 7A16

10 chữ số thập phacircn từ 0 đến 9 coacute matilde từ 3016 đến 3916 (48 đến 57) lsquo0rsquo 1048774 0011 0000 = 3016 lsquo1rsquo 1048774 0011 0001 = 3116 lsquo9rsquo 1048774 0011 1001 = 3916

Bộ matilde hợp nhất Unicode

Do caacutec hatildeng maacutey tiacutenh hagraveng đầu thiết kế Bộ matilde 16-bit Bộ matilde đa ngocircn ngữ Coacute hỗ trợ caacutec kyacute tự tiếng Việt

Page 16: Kiến trúc máy tính

Phương phaacutep chuyển đổi

Biểu diễn thocircng tin tronghệ nhị phacircn

BIT (BInary digiT)

0 1 BYTE = tổ hợp 8 bit

01001101 11111111 WORD = tổ hợp nhiều bit

10110 1011100101 1 KiloByte (KB) = 1024 byte = 210 byte 1 MegaByte (MB) = 1024 KB = 220 byte 1 GigaByte (GB) = 1024 MB = 230 byte

32 Matilde hoaacute vagrave lưu trữ dữ liệu trong maacutey tiacutenh

Nguyecircn tắc chung về matilde hoaacute dữ liệu Mọi dữ liệu đưa vagraveo maacutey tiacutenh đều được matilde hoaacute

thagravenh số nhị phacircn Caacutec loại dữ liệu

Dữ liệu nhacircn tạo do con người quy ước Dữ liệu số nguyecircn matilde hoaacute theo một số chuẩnqui ước Dữ liệu số thực matilde hoaacute bằng số dấu chấm động Dữ liệu kyacute tự matilde hoaacute theo bộ matilde kyacute tự

Dữ liệu tự nhiecircn tồn tại khaacutech quan với con người

Matilde hoacutea thocircng tin đầu vagraveo

Matilde hoacutea thocircng tin đầu vagraveo

Thứ tự lưu trữ caacutec byte của dữ liệu

Bộ nhớ chiacutenh thường được tổ chức theo byte Độ dagravei từ dữ liệu coacute thể chiếm từ một đến

nhiều byterArr cần phải biết thứ tự lưu trữ caacutec byte trong bộ nhớ

chiacutenh với caacutec dữ liệu nhiều byte

Thứ tự lưu trữ caacutec byte của dữ liệu

Coacute 2 caacutech lưu trữ Lưu trữ đầu nhỏ (Little-endian) Byte thấp được lưu trữ ở

ngăn nhớ coacute địa chỉ nhỏ hơn byte cao được lưu trữ ở ngăn nhớ coacute địa chỉ lớn hơn

Lưu trữ đầu to (Big-endian) Byte cao được lưu trữ ở ngăn nhớ coacute địa chỉ nhỏ hơn byte thấp được lưu trữ ở ngăn nhớ coacute địa chỉ lớn hơn

Intel 80x86 vagrave caacutec Pentium Little-endianrArr Motorola 680x0 vagrave caacutec bộ xử lyacute RISC Big-endianrArr Power PC vagrave Itanium cả hairArr

33 Biểu diễn số nguyecircn

Coacute hai loại số nguyecircn Số nguyecircn khocircng dấu (Unsigned Integer) Số nguyecircn coacute dấu (Signed Integer)

Biểu diễn số nguyecircn khocircng dấu Dugraveng n bit biểu diễn số nguyecircn khocircng dấu A

an-1an-2hellipa2a1a0

Giaacute trị của A được tiacutenh như sau Dải biểu diễn của A 0 -- 2n-1

Số 8 bit coacute giaacute trị 0 divide 255 Số 16 bit coacute giaacute trị 0 divide 65 535 Số 32 bit coacute giaacute trị 0 divide 4 294 967 295

1

0

2n

i

iiaA

Biểu diễn số nguyecircn khocircng dấun=8 bit

Biểu diễn được caacutec giaacute trị từ 0 đến 255 0000 0000 = 0 Chuacute yacute 0000 0001 = 1 1111 1111 0000 0010 = 2 + 0000 0001 0000 0011 = 3 1 0000 0000 hellip Vậy 255 + 1 = 0 1111 1111 = 255 do tragraven nhớ ra ngoagravei

Biểu diễn số nguyecircn coacute dấu

Số bugrave một vagrave Số bugrave hai Giả sử A lagrave một số nhị phacircn ta coacute Số bugrave một của A nhận được bằng caacutech đảo giaacute trị caacutec bit

của A (Số bugrave hai của A) = (Số bugrave một của A) + 1

Viacute dụ với n= 8 bit Giả sử coacute A = 0010 0101 Số bugrave một của A = 1101 1010

+ 1 Số bugrave hai của A = 1101 1011

Vigrave A + (Số bugrave hai của A) = 0 dugraveng số bugrave hai để biểu diễn cho số acircm

Biểu diễn số nguyecircn coacute dấu

Biểu diễn số nguyecircn coacute dấu bằng matilde bugrave hai Dugraveng n bit biểu diễn số nguyecircn coacute dấu A

an-1an-2hellipa2a1a0

Qui ước chọn bit coacute trọng số cao nhất (MSB) lagravem bit dấu Với A lagrave số dương bit an-1 = 0 caacutec bit cograven lại biểu diễn

độ lớn như số khocircng dấu Với A lagrave số acircm được biểu diễn bằng số bugrave hai của số

dương tương ứng vigrave vậy bit an-1 = 1

Biểu diễn số nguyecircn coacute dấu

Dạng tổng quaacutet của số nguyecircn A

an-1an-2hellipa2a1a0

Giaacute trị của A được xaacutec định như sau

Dải biểu diễn -2n-1 divide 2n-1-1 Số 8 bit coacute dấu coacute giaacute trị -128 divide +127 Số 16 bit coacute dấu coacute giaacute trị -32768 divide +32767

2

0

11 22

n

i

ii

nn aaA

Biểu diễn số nguyecircn coacute dấu n = 8 bit Biểu diễn được caacutec giaacute trị từ -128 đến +127 0000 0000 = 0 0000 0001 = +1 0000 0010 = +2 Chuacute yacute 0000 0011 = +3 +127 + 1 = -128 hellip -128 - 1 = +127 0111 1111 = +127 do tragraven xảy ra 1000 0000 = - 128 1000 0001 = - 127 hellip 1111 1110 = -2 1111 1111 = -1

Biểu diễn số nguyecircn coacute dấu

Chuyển đổi từ byte thagravenh word Đối với số dương

+19 = 0001 0011 (8 bit) +19 = 0000 0000 0001 0011 (16 bit)thecircm 8 bit 0 becircn traacutei

Đối với số acircm - 19 = 1110 1101 (8 bit) - 19 = 1111 1111 1110 1101 (16 bit)thecircm 8 bit 1 becircn traacutei

Với n=32 bit biểu diễn từ -231 đến 231-1 Với n=64 bit biểu diễn từ -263 đến 263-1

Biểu diễn số nguyecircn theo matilde BCD Binary Coded Decimal Code Số BCD được dugraveng để tiacutenh toaacuten trecircn số thập phacircn

trong hệ nhị phacircn Số BCD lagrave số viết theo hệ 16 nhưng giaacute trị tiacutenh theo

hệ 10 Số 12BCD được viết trong hệ 2 lagrave 0001 0010 nhưng coacute giaacute

trị lagrave 12 thay vigrave 18 (1216= 1810) Dugraveng 4 bit để matilde hoaacute cho caacutec chữ số thập phacircn từ 0 đến 9

0 0000 3 0011 6 0110 9 10011 0001 4 0100 7 0111 2 0010 5 0101 8 1000

Coacute 6 tổ hợp khocircng sử dụng 1010 1011 1100 1101 1110 1111

Caacutec kiểu lưu trữ số BCD

BCD khocircng goacutei (Unpacked BCD) Mỗi số BCD 4-bit được lưu trữ trong 4-bit thấp

của mỗi byte Viacute dụ Số 35 được lưu trữ 2 byte

0011 0101

BCD goacutei (Packed BCD) Hai số BCD được lưu trữ trong 1 byte Viacute dụ số 35 được lưu trữ 1 byte

0 0 1 1 0 1 0 1

Thực hiện caacutec pheacutep toaacuten số học với số nguyecircn Pheacutep cộng Pheacutep đảo dấu

Pheacutep đảo dấu trong maacutey tiacutenh thực chất lagrave lấy bugrave 2 Pheacutep trừ Nhacircn số nguyecircn

khocircng dấu coacute dấu

Thuật toaacuten nhacircn nhanh Booth Chia số nguyecircn

khocircng dấu coacute dấu

Số dấu chấm động

Số chấm động (floating point) dugraveng để tiacutenh toaacuten trecircn số thực một số thực X được biểu diễn theo kiểu số dấu chấm động

như sauX = plusmn m Bplusmne

m lagrave phần định trị (Mantissa) B lagrave cơ số (base) e lagrave phần mũ (Exponent)

m (mantissa) quyết định độ chiacutenh xaacutec B (base) e (exponent) quyết định độ lớnnhỏ

Số dấu chấm động

Một giaacute trị coacute thể biểu diễn dưới nhiều dạng Khoacute xử lyacute Cần chuẩn hoacutea

Số chấm động theo chuẩn IEEE 754 Cơ số 2 Coacute 2 dạng

Chiacutenh xaacutec đơn 32 bit độ lệch mũ (bias) 127 Cocircng thức tiacutenh giaacute trị X = (-1)S x 1m x 2e-127

Chiacutenh xaacutec keacutep 64 bit độ lệch mũ (bias) 1023 Cocircng thức tiacutenh giaacute trị X = (-1)S x 1m x 2e-1023

Số chấm động theo chuẩn IEEE 754

Caacutec quy ước đặc biệt

Caacutec bit của e bằng 0 caacutec bit của m bằng 0 thigrave X= plusmn 0 x000 0000 0000 0000 0000 0000 0000 0000 X= plusmn 0

Caacutec bit của e bằng 1 caacutec bit của m bằng 0 thigrave X= plusmn infin x111 1111 1000 0000 0000 0000 0000 0000 1048774 X= plusmn infin

Caacutec bit của e bằng 1 cograven m coacute iacutet nhất 1 bit bằng 1 thigrave noacute khocircng biểu diễn cho số nagraveo cả (NaN ndash not a number)

Biểu diễn kyacute tự

Bộ matilde ASCII (American Standard Code for Information Interchange) Do ANSI (American National Standard Institute)

thiết kế Bộ matilde 8 bit coacute thể matilde hoacutea được 28 =256 kyacute tự

coacute matilde từ 0016 divide FF16 trong đoacute 128 kyacute tự chuẩn coacute matilde từ 0016 divide 7F16 128 kyacute tự mở rộng coacute matilde từ 8016 divide FF16

Bộ matilde Unicode

Bộ matilde ASCII Caacutec kyacute tự chuẩn

26 chữ caacutei hoa lsquoArsquo đến lsquoZrsquo coacute matilde từ 4116 đến 5A16 (65 đến 90) lsquoArsquo 1048774 0100 0001 = 4116 lsquoBrsquo 1048774 0100 0010 = 4216 lsquoZrsquo 1048774 0101 1010 = 5A16

26 chữ caacutei thường lsquoarsquo đến lsquozrsquo coacute matilde từ 6116 đến 7A16 (97 đến 122) lsquoarsquo 1048774 0110 0001 = 6116 lsquobrsquo 1048774 0110 0010 = 6216 lsquozrsquo 1048774 0111 1010 = 7A16

10 chữ số thập phacircn từ 0 đến 9 coacute matilde từ 3016 đến 3916 (48 đến 57) lsquo0rsquo 1048774 0011 0000 = 3016 lsquo1rsquo 1048774 0011 0001 = 3116 lsquo9rsquo 1048774 0011 1001 = 3916

Bộ matilde hợp nhất Unicode

Do caacutec hatildeng maacutey tiacutenh hagraveng đầu thiết kế Bộ matilde 16-bit Bộ matilde đa ngocircn ngữ Coacute hỗ trợ caacutec kyacute tự tiếng Việt

Page 17: Kiến trúc máy tính

Biểu diễn thocircng tin tronghệ nhị phacircn

BIT (BInary digiT)

0 1 BYTE = tổ hợp 8 bit

01001101 11111111 WORD = tổ hợp nhiều bit

10110 1011100101 1 KiloByte (KB) = 1024 byte = 210 byte 1 MegaByte (MB) = 1024 KB = 220 byte 1 GigaByte (GB) = 1024 MB = 230 byte

32 Matilde hoaacute vagrave lưu trữ dữ liệu trong maacutey tiacutenh

Nguyecircn tắc chung về matilde hoaacute dữ liệu Mọi dữ liệu đưa vagraveo maacutey tiacutenh đều được matilde hoaacute

thagravenh số nhị phacircn Caacutec loại dữ liệu

Dữ liệu nhacircn tạo do con người quy ước Dữ liệu số nguyecircn matilde hoaacute theo một số chuẩnqui ước Dữ liệu số thực matilde hoaacute bằng số dấu chấm động Dữ liệu kyacute tự matilde hoaacute theo bộ matilde kyacute tự

Dữ liệu tự nhiecircn tồn tại khaacutech quan với con người

Matilde hoacutea thocircng tin đầu vagraveo

Matilde hoacutea thocircng tin đầu vagraveo

Thứ tự lưu trữ caacutec byte của dữ liệu

Bộ nhớ chiacutenh thường được tổ chức theo byte Độ dagravei từ dữ liệu coacute thể chiếm từ một đến

nhiều byterArr cần phải biết thứ tự lưu trữ caacutec byte trong bộ nhớ

chiacutenh với caacutec dữ liệu nhiều byte

Thứ tự lưu trữ caacutec byte của dữ liệu

Coacute 2 caacutech lưu trữ Lưu trữ đầu nhỏ (Little-endian) Byte thấp được lưu trữ ở

ngăn nhớ coacute địa chỉ nhỏ hơn byte cao được lưu trữ ở ngăn nhớ coacute địa chỉ lớn hơn

Lưu trữ đầu to (Big-endian) Byte cao được lưu trữ ở ngăn nhớ coacute địa chỉ nhỏ hơn byte thấp được lưu trữ ở ngăn nhớ coacute địa chỉ lớn hơn

Intel 80x86 vagrave caacutec Pentium Little-endianrArr Motorola 680x0 vagrave caacutec bộ xử lyacute RISC Big-endianrArr Power PC vagrave Itanium cả hairArr

33 Biểu diễn số nguyecircn

Coacute hai loại số nguyecircn Số nguyecircn khocircng dấu (Unsigned Integer) Số nguyecircn coacute dấu (Signed Integer)

Biểu diễn số nguyecircn khocircng dấu Dugraveng n bit biểu diễn số nguyecircn khocircng dấu A

an-1an-2hellipa2a1a0

Giaacute trị của A được tiacutenh như sau Dải biểu diễn của A 0 -- 2n-1

Số 8 bit coacute giaacute trị 0 divide 255 Số 16 bit coacute giaacute trị 0 divide 65 535 Số 32 bit coacute giaacute trị 0 divide 4 294 967 295

1

0

2n

i

iiaA

Biểu diễn số nguyecircn khocircng dấun=8 bit

Biểu diễn được caacutec giaacute trị từ 0 đến 255 0000 0000 = 0 Chuacute yacute 0000 0001 = 1 1111 1111 0000 0010 = 2 + 0000 0001 0000 0011 = 3 1 0000 0000 hellip Vậy 255 + 1 = 0 1111 1111 = 255 do tragraven nhớ ra ngoagravei

Biểu diễn số nguyecircn coacute dấu

Số bugrave một vagrave Số bugrave hai Giả sử A lagrave một số nhị phacircn ta coacute Số bugrave một của A nhận được bằng caacutech đảo giaacute trị caacutec bit

của A (Số bugrave hai của A) = (Số bugrave một của A) + 1

Viacute dụ với n= 8 bit Giả sử coacute A = 0010 0101 Số bugrave một của A = 1101 1010

+ 1 Số bugrave hai của A = 1101 1011

Vigrave A + (Số bugrave hai của A) = 0 dugraveng số bugrave hai để biểu diễn cho số acircm

Biểu diễn số nguyecircn coacute dấu

Biểu diễn số nguyecircn coacute dấu bằng matilde bugrave hai Dugraveng n bit biểu diễn số nguyecircn coacute dấu A

an-1an-2hellipa2a1a0

Qui ước chọn bit coacute trọng số cao nhất (MSB) lagravem bit dấu Với A lagrave số dương bit an-1 = 0 caacutec bit cograven lại biểu diễn

độ lớn như số khocircng dấu Với A lagrave số acircm được biểu diễn bằng số bugrave hai của số

dương tương ứng vigrave vậy bit an-1 = 1

Biểu diễn số nguyecircn coacute dấu

Dạng tổng quaacutet của số nguyecircn A

an-1an-2hellipa2a1a0

Giaacute trị của A được xaacutec định như sau

Dải biểu diễn -2n-1 divide 2n-1-1 Số 8 bit coacute dấu coacute giaacute trị -128 divide +127 Số 16 bit coacute dấu coacute giaacute trị -32768 divide +32767

2

0

11 22

n

i

ii

nn aaA

Biểu diễn số nguyecircn coacute dấu n = 8 bit Biểu diễn được caacutec giaacute trị từ -128 đến +127 0000 0000 = 0 0000 0001 = +1 0000 0010 = +2 Chuacute yacute 0000 0011 = +3 +127 + 1 = -128 hellip -128 - 1 = +127 0111 1111 = +127 do tragraven xảy ra 1000 0000 = - 128 1000 0001 = - 127 hellip 1111 1110 = -2 1111 1111 = -1

Biểu diễn số nguyecircn coacute dấu

Chuyển đổi từ byte thagravenh word Đối với số dương

+19 = 0001 0011 (8 bit) +19 = 0000 0000 0001 0011 (16 bit)thecircm 8 bit 0 becircn traacutei

Đối với số acircm - 19 = 1110 1101 (8 bit) - 19 = 1111 1111 1110 1101 (16 bit)thecircm 8 bit 1 becircn traacutei

Với n=32 bit biểu diễn từ -231 đến 231-1 Với n=64 bit biểu diễn từ -263 đến 263-1

Biểu diễn số nguyecircn theo matilde BCD Binary Coded Decimal Code Số BCD được dugraveng để tiacutenh toaacuten trecircn số thập phacircn

trong hệ nhị phacircn Số BCD lagrave số viết theo hệ 16 nhưng giaacute trị tiacutenh theo

hệ 10 Số 12BCD được viết trong hệ 2 lagrave 0001 0010 nhưng coacute giaacute

trị lagrave 12 thay vigrave 18 (1216= 1810) Dugraveng 4 bit để matilde hoaacute cho caacutec chữ số thập phacircn từ 0 đến 9

0 0000 3 0011 6 0110 9 10011 0001 4 0100 7 0111 2 0010 5 0101 8 1000

Coacute 6 tổ hợp khocircng sử dụng 1010 1011 1100 1101 1110 1111

Caacutec kiểu lưu trữ số BCD

BCD khocircng goacutei (Unpacked BCD) Mỗi số BCD 4-bit được lưu trữ trong 4-bit thấp

của mỗi byte Viacute dụ Số 35 được lưu trữ 2 byte

0011 0101

BCD goacutei (Packed BCD) Hai số BCD được lưu trữ trong 1 byte Viacute dụ số 35 được lưu trữ 1 byte

0 0 1 1 0 1 0 1

Thực hiện caacutec pheacutep toaacuten số học với số nguyecircn Pheacutep cộng Pheacutep đảo dấu

Pheacutep đảo dấu trong maacutey tiacutenh thực chất lagrave lấy bugrave 2 Pheacutep trừ Nhacircn số nguyecircn

khocircng dấu coacute dấu

Thuật toaacuten nhacircn nhanh Booth Chia số nguyecircn

khocircng dấu coacute dấu

Số dấu chấm động

Số chấm động (floating point) dugraveng để tiacutenh toaacuten trecircn số thực một số thực X được biểu diễn theo kiểu số dấu chấm động

như sauX = plusmn m Bplusmne

m lagrave phần định trị (Mantissa) B lagrave cơ số (base) e lagrave phần mũ (Exponent)

m (mantissa) quyết định độ chiacutenh xaacutec B (base) e (exponent) quyết định độ lớnnhỏ

Số dấu chấm động

Một giaacute trị coacute thể biểu diễn dưới nhiều dạng Khoacute xử lyacute Cần chuẩn hoacutea

Số chấm động theo chuẩn IEEE 754 Cơ số 2 Coacute 2 dạng

Chiacutenh xaacutec đơn 32 bit độ lệch mũ (bias) 127 Cocircng thức tiacutenh giaacute trị X = (-1)S x 1m x 2e-127

Chiacutenh xaacutec keacutep 64 bit độ lệch mũ (bias) 1023 Cocircng thức tiacutenh giaacute trị X = (-1)S x 1m x 2e-1023

Số chấm động theo chuẩn IEEE 754

Caacutec quy ước đặc biệt

Caacutec bit của e bằng 0 caacutec bit của m bằng 0 thigrave X= plusmn 0 x000 0000 0000 0000 0000 0000 0000 0000 X= plusmn 0

Caacutec bit của e bằng 1 caacutec bit của m bằng 0 thigrave X= plusmn infin x111 1111 1000 0000 0000 0000 0000 0000 1048774 X= plusmn infin

Caacutec bit của e bằng 1 cograven m coacute iacutet nhất 1 bit bằng 1 thigrave noacute khocircng biểu diễn cho số nagraveo cả (NaN ndash not a number)

Biểu diễn kyacute tự

Bộ matilde ASCII (American Standard Code for Information Interchange) Do ANSI (American National Standard Institute)

thiết kế Bộ matilde 8 bit coacute thể matilde hoacutea được 28 =256 kyacute tự

coacute matilde từ 0016 divide FF16 trong đoacute 128 kyacute tự chuẩn coacute matilde từ 0016 divide 7F16 128 kyacute tự mở rộng coacute matilde từ 8016 divide FF16

Bộ matilde Unicode

Bộ matilde ASCII Caacutec kyacute tự chuẩn

26 chữ caacutei hoa lsquoArsquo đến lsquoZrsquo coacute matilde từ 4116 đến 5A16 (65 đến 90) lsquoArsquo 1048774 0100 0001 = 4116 lsquoBrsquo 1048774 0100 0010 = 4216 lsquoZrsquo 1048774 0101 1010 = 5A16

26 chữ caacutei thường lsquoarsquo đến lsquozrsquo coacute matilde từ 6116 đến 7A16 (97 đến 122) lsquoarsquo 1048774 0110 0001 = 6116 lsquobrsquo 1048774 0110 0010 = 6216 lsquozrsquo 1048774 0111 1010 = 7A16

10 chữ số thập phacircn từ 0 đến 9 coacute matilde từ 3016 đến 3916 (48 đến 57) lsquo0rsquo 1048774 0011 0000 = 3016 lsquo1rsquo 1048774 0011 0001 = 3116 lsquo9rsquo 1048774 0011 1001 = 3916

Bộ matilde hợp nhất Unicode

Do caacutec hatildeng maacutey tiacutenh hagraveng đầu thiết kế Bộ matilde 16-bit Bộ matilde đa ngocircn ngữ Coacute hỗ trợ caacutec kyacute tự tiếng Việt

Page 18: Kiến trúc máy tính

32 Matilde hoaacute vagrave lưu trữ dữ liệu trong maacutey tiacutenh

Nguyecircn tắc chung về matilde hoaacute dữ liệu Mọi dữ liệu đưa vagraveo maacutey tiacutenh đều được matilde hoaacute

thagravenh số nhị phacircn Caacutec loại dữ liệu

Dữ liệu nhacircn tạo do con người quy ước Dữ liệu số nguyecircn matilde hoaacute theo một số chuẩnqui ước Dữ liệu số thực matilde hoaacute bằng số dấu chấm động Dữ liệu kyacute tự matilde hoaacute theo bộ matilde kyacute tự

Dữ liệu tự nhiecircn tồn tại khaacutech quan với con người

Matilde hoacutea thocircng tin đầu vagraveo

Matilde hoacutea thocircng tin đầu vagraveo

Thứ tự lưu trữ caacutec byte của dữ liệu

Bộ nhớ chiacutenh thường được tổ chức theo byte Độ dagravei từ dữ liệu coacute thể chiếm từ một đến

nhiều byterArr cần phải biết thứ tự lưu trữ caacutec byte trong bộ nhớ

chiacutenh với caacutec dữ liệu nhiều byte

Thứ tự lưu trữ caacutec byte của dữ liệu

Coacute 2 caacutech lưu trữ Lưu trữ đầu nhỏ (Little-endian) Byte thấp được lưu trữ ở

ngăn nhớ coacute địa chỉ nhỏ hơn byte cao được lưu trữ ở ngăn nhớ coacute địa chỉ lớn hơn

Lưu trữ đầu to (Big-endian) Byte cao được lưu trữ ở ngăn nhớ coacute địa chỉ nhỏ hơn byte thấp được lưu trữ ở ngăn nhớ coacute địa chỉ lớn hơn

Intel 80x86 vagrave caacutec Pentium Little-endianrArr Motorola 680x0 vagrave caacutec bộ xử lyacute RISC Big-endianrArr Power PC vagrave Itanium cả hairArr

33 Biểu diễn số nguyecircn

Coacute hai loại số nguyecircn Số nguyecircn khocircng dấu (Unsigned Integer) Số nguyecircn coacute dấu (Signed Integer)

Biểu diễn số nguyecircn khocircng dấu Dugraveng n bit biểu diễn số nguyecircn khocircng dấu A

an-1an-2hellipa2a1a0

Giaacute trị của A được tiacutenh như sau Dải biểu diễn của A 0 -- 2n-1

Số 8 bit coacute giaacute trị 0 divide 255 Số 16 bit coacute giaacute trị 0 divide 65 535 Số 32 bit coacute giaacute trị 0 divide 4 294 967 295

1

0

2n

i

iiaA

Biểu diễn số nguyecircn khocircng dấun=8 bit

Biểu diễn được caacutec giaacute trị từ 0 đến 255 0000 0000 = 0 Chuacute yacute 0000 0001 = 1 1111 1111 0000 0010 = 2 + 0000 0001 0000 0011 = 3 1 0000 0000 hellip Vậy 255 + 1 = 0 1111 1111 = 255 do tragraven nhớ ra ngoagravei

Biểu diễn số nguyecircn coacute dấu

Số bugrave một vagrave Số bugrave hai Giả sử A lagrave một số nhị phacircn ta coacute Số bugrave một của A nhận được bằng caacutech đảo giaacute trị caacutec bit

của A (Số bugrave hai của A) = (Số bugrave một của A) + 1

Viacute dụ với n= 8 bit Giả sử coacute A = 0010 0101 Số bugrave một của A = 1101 1010

+ 1 Số bugrave hai của A = 1101 1011

Vigrave A + (Số bugrave hai của A) = 0 dugraveng số bugrave hai để biểu diễn cho số acircm

Biểu diễn số nguyecircn coacute dấu

Biểu diễn số nguyecircn coacute dấu bằng matilde bugrave hai Dugraveng n bit biểu diễn số nguyecircn coacute dấu A

an-1an-2hellipa2a1a0

Qui ước chọn bit coacute trọng số cao nhất (MSB) lagravem bit dấu Với A lagrave số dương bit an-1 = 0 caacutec bit cograven lại biểu diễn

độ lớn như số khocircng dấu Với A lagrave số acircm được biểu diễn bằng số bugrave hai của số

dương tương ứng vigrave vậy bit an-1 = 1

Biểu diễn số nguyecircn coacute dấu

Dạng tổng quaacutet của số nguyecircn A

an-1an-2hellipa2a1a0

Giaacute trị của A được xaacutec định như sau

Dải biểu diễn -2n-1 divide 2n-1-1 Số 8 bit coacute dấu coacute giaacute trị -128 divide +127 Số 16 bit coacute dấu coacute giaacute trị -32768 divide +32767

2

0

11 22

n

i

ii

nn aaA

Biểu diễn số nguyecircn coacute dấu n = 8 bit Biểu diễn được caacutec giaacute trị từ -128 đến +127 0000 0000 = 0 0000 0001 = +1 0000 0010 = +2 Chuacute yacute 0000 0011 = +3 +127 + 1 = -128 hellip -128 - 1 = +127 0111 1111 = +127 do tragraven xảy ra 1000 0000 = - 128 1000 0001 = - 127 hellip 1111 1110 = -2 1111 1111 = -1

Biểu diễn số nguyecircn coacute dấu

Chuyển đổi từ byte thagravenh word Đối với số dương

+19 = 0001 0011 (8 bit) +19 = 0000 0000 0001 0011 (16 bit)thecircm 8 bit 0 becircn traacutei

Đối với số acircm - 19 = 1110 1101 (8 bit) - 19 = 1111 1111 1110 1101 (16 bit)thecircm 8 bit 1 becircn traacutei

Với n=32 bit biểu diễn từ -231 đến 231-1 Với n=64 bit biểu diễn từ -263 đến 263-1

Biểu diễn số nguyecircn theo matilde BCD Binary Coded Decimal Code Số BCD được dugraveng để tiacutenh toaacuten trecircn số thập phacircn

trong hệ nhị phacircn Số BCD lagrave số viết theo hệ 16 nhưng giaacute trị tiacutenh theo

hệ 10 Số 12BCD được viết trong hệ 2 lagrave 0001 0010 nhưng coacute giaacute

trị lagrave 12 thay vigrave 18 (1216= 1810) Dugraveng 4 bit để matilde hoaacute cho caacutec chữ số thập phacircn từ 0 đến 9

0 0000 3 0011 6 0110 9 10011 0001 4 0100 7 0111 2 0010 5 0101 8 1000

Coacute 6 tổ hợp khocircng sử dụng 1010 1011 1100 1101 1110 1111

Caacutec kiểu lưu trữ số BCD

BCD khocircng goacutei (Unpacked BCD) Mỗi số BCD 4-bit được lưu trữ trong 4-bit thấp

của mỗi byte Viacute dụ Số 35 được lưu trữ 2 byte

0011 0101

BCD goacutei (Packed BCD) Hai số BCD được lưu trữ trong 1 byte Viacute dụ số 35 được lưu trữ 1 byte

0 0 1 1 0 1 0 1

Thực hiện caacutec pheacutep toaacuten số học với số nguyecircn Pheacutep cộng Pheacutep đảo dấu

Pheacutep đảo dấu trong maacutey tiacutenh thực chất lagrave lấy bugrave 2 Pheacutep trừ Nhacircn số nguyecircn

khocircng dấu coacute dấu

Thuật toaacuten nhacircn nhanh Booth Chia số nguyecircn

khocircng dấu coacute dấu

Số dấu chấm động

Số chấm động (floating point) dugraveng để tiacutenh toaacuten trecircn số thực một số thực X được biểu diễn theo kiểu số dấu chấm động

như sauX = plusmn m Bplusmne

m lagrave phần định trị (Mantissa) B lagrave cơ số (base) e lagrave phần mũ (Exponent)

m (mantissa) quyết định độ chiacutenh xaacutec B (base) e (exponent) quyết định độ lớnnhỏ

Số dấu chấm động

Một giaacute trị coacute thể biểu diễn dưới nhiều dạng Khoacute xử lyacute Cần chuẩn hoacutea

Số chấm động theo chuẩn IEEE 754 Cơ số 2 Coacute 2 dạng

Chiacutenh xaacutec đơn 32 bit độ lệch mũ (bias) 127 Cocircng thức tiacutenh giaacute trị X = (-1)S x 1m x 2e-127

Chiacutenh xaacutec keacutep 64 bit độ lệch mũ (bias) 1023 Cocircng thức tiacutenh giaacute trị X = (-1)S x 1m x 2e-1023

Số chấm động theo chuẩn IEEE 754

Caacutec quy ước đặc biệt

Caacutec bit của e bằng 0 caacutec bit của m bằng 0 thigrave X= plusmn 0 x000 0000 0000 0000 0000 0000 0000 0000 X= plusmn 0

Caacutec bit của e bằng 1 caacutec bit của m bằng 0 thigrave X= plusmn infin x111 1111 1000 0000 0000 0000 0000 0000 1048774 X= plusmn infin

Caacutec bit của e bằng 1 cograven m coacute iacutet nhất 1 bit bằng 1 thigrave noacute khocircng biểu diễn cho số nagraveo cả (NaN ndash not a number)

Biểu diễn kyacute tự

Bộ matilde ASCII (American Standard Code for Information Interchange) Do ANSI (American National Standard Institute)

thiết kế Bộ matilde 8 bit coacute thể matilde hoacutea được 28 =256 kyacute tự

coacute matilde từ 0016 divide FF16 trong đoacute 128 kyacute tự chuẩn coacute matilde từ 0016 divide 7F16 128 kyacute tự mở rộng coacute matilde từ 8016 divide FF16

Bộ matilde Unicode

Bộ matilde ASCII Caacutec kyacute tự chuẩn

26 chữ caacutei hoa lsquoArsquo đến lsquoZrsquo coacute matilde từ 4116 đến 5A16 (65 đến 90) lsquoArsquo 1048774 0100 0001 = 4116 lsquoBrsquo 1048774 0100 0010 = 4216 lsquoZrsquo 1048774 0101 1010 = 5A16

26 chữ caacutei thường lsquoarsquo đến lsquozrsquo coacute matilde từ 6116 đến 7A16 (97 đến 122) lsquoarsquo 1048774 0110 0001 = 6116 lsquobrsquo 1048774 0110 0010 = 6216 lsquozrsquo 1048774 0111 1010 = 7A16

10 chữ số thập phacircn từ 0 đến 9 coacute matilde từ 3016 đến 3916 (48 đến 57) lsquo0rsquo 1048774 0011 0000 = 3016 lsquo1rsquo 1048774 0011 0001 = 3116 lsquo9rsquo 1048774 0011 1001 = 3916

Bộ matilde hợp nhất Unicode

Do caacutec hatildeng maacutey tiacutenh hagraveng đầu thiết kế Bộ matilde 16-bit Bộ matilde đa ngocircn ngữ Coacute hỗ trợ caacutec kyacute tự tiếng Việt

Page 19: Kiến trúc máy tính

Matilde hoacutea thocircng tin đầu vagraveo

Matilde hoacutea thocircng tin đầu vagraveo

Thứ tự lưu trữ caacutec byte của dữ liệu

Bộ nhớ chiacutenh thường được tổ chức theo byte Độ dagravei từ dữ liệu coacute thể chiếm từ một đến

nhiều byterArr cần phải biết thứ tự lưu trữ caacutec byte trong bộ nhớ

chiacutenh với caacutec dữ liệu nhiều byte

Thứ tự lưu trữ caacutec byte của dữ liệu

Coacute 2 caacutech lưu trữ Lưu trữ đầu nhỏ (Little-endian) Byte thấp được lưu trữ ở

ngăn nhớ coacute địa chỉ nhỏ hơn byte cao được lưu trữ ở ngăn nhớ coacute địa chỉ lớn hơn

Lưu trữ đầu to (Big-endian) Byte cao được lưu trữ ở ngăn nhớ coacute địa chỉ nhỏ hơn byte thấp được lưu trữ ở ngăn nhớ coacute địa chỉ lớn hơn

Intel 80x86 vagrave caacutec Pentium Little-endianrArr Motorola 680x0 vagrave caacutec bộ xử lyacute RISC Big-endianrArr Power PC vagrave Itanium cả hairArr

33 Biểu diễn số nguyecircn

Coacute hai loại số nguyecircn Số nguyecircn khocircng dấu (Unsigned Integer) Số nguyecircn coacute dấu (Signed Integer)

Biểu diễn số nguyecircn khocircng dấu Dugraveng n bit biểu diễn số nguyecircn khocircng dấu A

an-1an-2hellipa2a1a0

Giaacute trị của A được tiacutenh như sau Dải biểu diễn của A 0 -- 2n-1

Số 8 bit coacute giaacute trị 0 divide 255 Số 16 bit coacute giaacute trị 0 divide 65 535 Số 32 bit coacute giaacute trị 0 divide 4 294 967 295

1

0

2n

i

iiaA

Biểu diễn số nguyecircn khocircng dấun=8 bit

Biểu diễn được caacutec giaacute trị từ 0 đến 255 0000 0000 = 0 Chuacute yacute 0000 0001 = 1 1111 1111 0000 0010 = 2 + 0000 0001 0000 0011 = 3 1 0000 0000 hellip Vậy 255 + 1 = 0 1111 1111 = 255 do tragraven nhớ ra ngoagravei

Biểu diễn số nguyecircn coacute dấu

Số bugrave một vagrave Số bugrave hai Giả sử A lagrave một số nhị phacircn ta coacute Số bugrave một của A nhận được bằng caacutech đảo giaacute trị caacutec bit

của A (Số bugrave hai của A) = (Số bugrave một của A) + 1

Viacute dụ với n= 8 bit Giả sử coacute A = 0010 0101 Số bugrave một của A = 1101 1010

+ 1 Số bugrave hai của A = 1101 1011

Vigrave A + (Số bugrave hai của A) = 0 dugraveng số bugrave hai để biểu diễn cho số acircm

Biểu diễn số nguyecircn coacute dấu

Biểu diễn số nguyecircn coacute dấu bằng matilde bugrave hai Dugraveng n bit biểu diễn số nguyecircn coacute dấu A

an-1an-2hellipa2a1a0

Qui ước chọn bit coacute trọng số cao nhất (MSB) lagravem bit dấu Với A lagrave số dương bit an-1 = 0 caacutec bit cograven lại biểu diễn

độ lớn như số khocircng dấu Với A lagrave số acircm được biểu diễn bằng số bugrave hai của số

dương tương ứng vigrave vậy bit an-1 = 1

Biểu diễn số nguyecircn coacute dấu

Dạng tổng quaacutet của số nguyecircn A

an-1an-2hellipa2a1a0

Giaacute trị của A được xaacutec định như sau

Dải biểu diễn -2n-1 divide 2n-1-1 Số 8 bit coacute dấu coacute giaacute trị -128 divide +127 Số 16 bit coacute dấu coacute giaacute trị -32768 divide +32767

2

0

11 22

n

i

ii

nn aaA

Biểu diễn số nguyecircn coacute dấu n = 8 bit Biểu diễn được caacutec giaacute trị từ -128 đến +127 0000 0000 = 0 0000 0001 = +1 0000 0010 = +2 Chuacute yacute 0000 0011 = +3 +127 + 1 = -128 hellip -128 - 1 = +127 0111 1111 = +127 do tragraven xảy ra 1000 0000 = - 128 1000 0001 = - 127 hellip 1111 1110 = -2 1111 1111 = -1

Biểu diễn số nguyecircn coacute dấu

Chuyển đổi từ byte thagravenh word Đối với số dương

+19 = 0001 0011 (8 bit) +19 = 0000 0000 0001 0011 (16 bit)thecircm 8 bit 0 becircn traacutei

Đối với số acircm - 19 = 1110 1101 (8 bit) - 19 = 1111 1111 1110 1101 (16 bit)thecircm 8 bit 1 becircn traacutei

Với n=32 bit biểu diễn từ -231 đến 231-1 Với n=64 bit biểu diễn từ -263 đến 263-1

Biểu diễn số nguyecircn theo matilde BCD Binary Coded Decimal Code Số BCD được dugraveng để tiacutenh toaacuten trecircn số thập phacircn

trong hệ nhị phacircn Số BCD lagrave số viết theo hệ 16 nhưng giaacute trị tiacutenh theo

hệ 10 Số 12BCD được viết trong hệ 2 lagrave 0001 0010 nhưng coacute giaacute

trị lagrave 12 thay vigrave 18 (1216= 1810) Dugraveng 4 bit để matilde hoaacute cho caacutec chữ số thập phacircn từ 0 đến 9

0 0000 3 0011 6 0110 9 10011 0001 4 0100 7 0111 2 0010 5 0101 8 1000

Coacute 6 tổ hợp khocircng sử dụng 1010 1011 1100 1101 1110 1111

Caacutec kiểu lưu trữ số BCD

BCD khocircng goacutei (Unpacked BCD) Mỗi số BCD 4-bit được lưu trữ trong 4-bit thấp

của mỗi byte Viacute dụ Số 35 được lưu trữ 2 byte

0011 0101

BCD goacutei (Packed BCD) Hai số BCD được lưu trữ trong 1 byte Viacute dụ số 35 được lưu trữ 1 byte

0 0 1 1 0 1 0 1

Thực hiện caacutec pheacutep toaacuten số học với số nguyecircn Pheacutep cộng Pheacutep đảo dấu

Pheacutep đảo dấu trong maacutey tiacutenh thực chất lagrave lấy bugrave 2 Pheacutep trừ Nhacircn số nguyecircn

khocircng dấu coacute dấu

Thuật toaacuten nhacircn nhanh Booth Chia số nguyecircn

khocircng dấu coacute dấu

Số dấu chấm động

Số chấm động (floating point) dugraveng để tiacutenh toaacuten trecircn số thực một số thực X được biểu diễn theo kiểu số dấu chấm động

như sauX = plusmn m Bplusmne

m lagrave phần định trị (Mantissa) B lagrave cơ số (base) e lagrave phần mũ (Exponent)

m (mantissa) quyết định độ chiacutenh xaacutec B (base) e (exponent) quyết định độ lớnnhỏ

Số dấu chấm động

Một giaacute trị coacute thể biểu diễn dưới nhiều dạng Khoacute xử lyacute Cần chuẩn hoacutea

Số chấm động theo chuẩn IEEE 754 Cơ số 2 Coacute 2 dạng

Chiacutenh xaacutec đơn 32 bit độ lệch mũ (bias) 127 Cocircng thức tiacutenh giaacute trị X = (-1)S x 1m x 2e-127

Chiacutenh xaacutec keacutep 64 bit độ lệch mũ (bias) 1023 Cocircng thức tiacutenh giaacute trị X = (-1)S x 1m x 2e-1023

Số chấm động theo chuẩn IEEE 754

Caacutec quy ước đặc biệt

Caacutec bit của e bằng 0 caacutec bit của m bằng 0 thigrave X= plusmn 0 x000 0000 0000 0000 0000 0000 0000 0000 X= plusmn 0

Caacutec bit của e bằng 1 caacutec bit của m bằng 0 thigrave X= plusmn infin x111 1111 1000 0000 0000 0000 0000 0000 1048774 X= plusmn infin

Caacutec bit của e bằng 1 cograven m coacute iacutet nhất 1 bit bằng 1 thigrave noacute khocircng biểu diễn cho số nagraveo cả (NaN ndash not a number)

Biểu diễn kyacute tự

Bộ matilde ASCII (American Standard Code for Information Interchange) Do ANSI (American National Standard Institute)

thiết kế Bộ matilde 8 bit coacute thể matilde hoacutea được 28 =256 kyacute tự

coacute matilde từ 0016 divide FF16 trong đoacute 128 kyacute tự chuẩn coacute matilde từ 0016 divide 7F16 128 kyacute tự mở rộng coacute matilde từ 8016 divide FF16

Bộ matilde Unicode

Bộ matilde ASCII Caacutec kyacute tự chuẩn

26 chữ caacutei hoa lsquoArsquo đến lsquoZrsquo coacute matilde từ 4116 đến 5A16 (65 đến 90) lsquoArsquo 1048774 0100 0001 = 4116 lsquoBrsquo 1048774 0100 0010 = 4216 lsquoZrsquo 1048774 0101 1010 = 5A16

26 chữ caacutei thường lsquoarsquo đến lsquozrsquo coacute matilde từ 6116 đến 7A16 (97 đến 122) lsquoarsquo 1048774 0110 0001 = 6116 lsquobrsquo 1048774 0110 0010 = 6216 lsquozrsquo 1048774 0111 1010 = 7A16

10 chữ số thập phacircn từ 0 đến 9 coacute matilde từ 3016 đến 3916 (48 đến 57) lsquo0rsquo 1048774 0011 0000 = 3016 lsquo1rsquo 1048774 0011 0001 = 3116 lsquo9rsquo 1048774 0011 1001 = 3916

Bộ matilde hợp nhất Unicode

Do caacutec hatildeng maacutey tiacutenh hagraveng đầu thiết kế Bộ matilde 16-bit Bộ matilde đa ngocircn ngữ Coacute hỗ trợ caacutec kyacute tự tiếng Việt

Page 20: Kiến trúc máy tính

Matilde hoacutea thocircng tin đầu vagraveo

Thứ tự lưu trữ caacutec byte của dữ liệu

Bộ nhớ chiacutenh thường được tổ chức theo byte Độ dagravei từ dữ liệu coacute thể chiếm từ một đến

nhiều byterArr cần phải biết thứ tự lưu trữ caacutec byte trong bộ nhớ

chiacutenh với caacutec dữ liệu nhiều byte

Thứ tự lưu trữ caacutec byte của dữ liệu

Coacute 2 caacutech lưu trữ Lưu trữ đầu nhỏ (Little-endian) Byte thấp được lưu trữ ở

ngăn nhớ coacute địa chỉ nhỏ hơn byte cao được lưu trữ ở ngăn nhớ coacute địa chỉ lớn hơn

Lưu trữ đầu to (Big-endian) Byte cao được lưu trữ ở ngăn nhớ coacute địa chỉ nhỏ hơn byte thấp được lưu trữ ở ngăn nhớ coacute địa chỉ lớn hơn

Intel 80x86 vagrave caacutec Pentium Little-endianrArr Motorola 680x0 vagrave caacutec bộ xử lyacute RISC Big-endianrArr Power PC vagrave Itanium cả hairArr

33 Biểu diễn số nguyecircn

Coacute hai loại số nguyecircn Số nguyecircn khocircng dấu (Unsigned Integer) Số nguyecircn coacute dấu (Signed Integer)

Biểu diễn số nguyecircn khocircng dấu Dugraveng n bit biểu diễn số nguyecircn khocircng dấu A

an-1an-2hellipa2a1a0

Giaacute trị của A được tiacutenh như sau Dải biểu diễn của A 0 -- 2n-1

Số 8 bit coacute giaacute trị 0 divide 255 Số 16 bit coacute giaacute trị 0 divide 65 535 Số 32 bit coacute giaacute trị 0 divide 4 294 967 295

1

0

2n

i

iiaA

Biểu diễn số nguyecircn khocircng dấun=8 bit

Biểu diễn được caacutec giaacute trị từ 0 đến 255 0000 0000 = 0 Chuacute yacute 0000 0001 = 1 1111 1111 0000 0010 = 2 + 0000 0001 0000 0011 = 3 1 0000 0000 hellip Vậy 255 + 1 = 0 1111 1111 = 255 do tragraven nhớ ra ngoagravei

Biểu diễn số nguyecircn coacute dấu

Số bugrave một vagrave Số bugrave hai Giả sử A lagrave một số nhị phacircn ta coacute Số bugrave một của A nhận được bằng caacutech đảo giaacute trị caacutec bit

của A (Số bugrave hai của A) = (Số bugrave một của A) + 1

Viacute dụ với n= 8 bit Giả sử coacute A = 0010 0101 Số bugrave một của A = 1101 1010

+ 1 Số bugrave hai của A = 1101 1011

Vigrave A + (Số bugrave hai của A) = 0 dugraveng số bugrave hai để biểu diễn cho số acircm

Biểu diễn số nguyecircn coacute dấu

Biểu diễn số nguyecircn coacute dấu bằng matilde bugrave hai Dugraveng n bit biểu diễn số nguyecircn coacute dấu A

an-1an-2hellipa2a1a0

Qui ước chọn bit coacute trọng số cao nhất (MSB) lagravem bit dấu Với A lagrave số dương bit an-1 = 0 caacutec bit cograven lại biểu diễn

độ lớn như số khocircng dấu Với A lagrave số acircm được biểu diễn bằng số bugrave hai của số

dương tương ứng vigrave vậy bit an-1 = 1

Biểu diễn số nguyecircn coacute dấu

Dạng tổng quaacutet của số nguyecircn A

an-1an-2hellipa2a1a0

Giaacute trị của A được xaacutec định như sau

Dải biểu diễn -2n-1 divide 2n-1-1 Số 8 bit coacute dấu coacute giaacute trị -128 divide +127 Số 16 bit coacute dấu coacute giaacute trị -32768 divide +32767

2

0

11 22

n

i

ii

nn aaA

Biểu diễn số nguyecircn coacute dấu n = 8 bit Biểu diễn được caacutec giaacute trị từ -128 đến +127 0000 0000 = 0 0000 0001 = +1 0000 0010 = +2 Chuacute yacute 0000 0011 = +3 +127 + 1 = -128 hellip -128 - 1 = +127 0111 1111 = +127 do tragraven xảy ra 1000 0000 = - 128 1000 0001 = - 127 hellip 1111 1110 = -2 1111 1111 = -1

Biểu diễn số nguyecircn coacute dấu

Chuyển đổi từ byte thagravenh word Đối với số dương

+19 = 0001 0011 (8 bit) +19 = 0000 0000 0001 0011 (16 bit)thecircm 8 bit 0 becircn traacutei

Đối với số acircm - 19 = 1110 1101 (8 bit) - 19 = 1111 1111 1110 1101 (16 bit)thecircm 8 bit 1 becircn traacutei

Với n=32 bit biểu diễn từ -231 đến 231-1 Với n=64 bit biểu diễn từ -263 đến 263-1

Biểu diễn số nguyecircn theo matilde BCD Binary Coded Decimal Code Số BCD được dugraveng để tiacutenh toaacuten trecircn số thập phacircn

trong hệ nhị phacircn Số BCD lagrave số viết theo hệ 16 nhưng giaacute trị tiacutenh theo

hệ 10 Số 12BCD được viết trong hệ 2 lagrave 0001 0010 nhưng coacute giaacute

trị lagrave 12 thay vigrave 18 (1216= 1810) Dugraveng 4 bit để matilde hoaacute cho caacutec chữ số thập phacircn từ 0 đến 9

0 0000 3 0011 6 0110 9 10011 0001 4 0100 7 0111 2 0010 5 0101 8 1000

Coacute 6 tổ hợp khocircng sử dụng 1010 1011 1100 1101 1110 1111

Caacutec kiểu lưu trữ số BCD

BCD khocircng goacutei (Unpacked BCD) Mỗi số BCD 4-bit được lưu trữ trong 4-bit thấp

của mỗi byte Viacute dụ Số 35 được lưu trữ 2 byte

0011 0101

BCD goacutei (Packed BCD) Hai số BCD được lưu trữ trong 1 byte Viacute dụ số 35 được lưu trữ 1 byte

0 0 1 1 0 1 0 1

Thực hiện caacutec pheacutep toaacuten số học với số nguyecircn Pheacutep cộng Pheacutep đảo dấu

Pheacutep đảo dấu trong maacutey tiacutenh thực chất lagrave lấy bugrave 2 Pheacutep trừ Nhacircn số nguyecircn

khocircng dấu coacute dấu

Thuật toaacuten nhacircn nhanh Booth Chia số nguyecircn

khocircng dấu coacute dấu

Số dấu chấm động

Số chấm động (floating point) dugraveng để tiacutenh toaacuten trecircn số thực một số thực X được biểu diễn theo kiểu số dấu chấm động

như sauX = plusmn m Bplusmne

m lagrave phần định trị (Mantissa) B lagrave cơ số (base) e lagrave phần mũ (Exponent)

m (mantissa) quyết định độ chiacutenh xaacutec B (base) e (exponent) quyết định độ lớnnhỏ

Số dấu chấm động

Một giaacute trị coacute thể biểu diễn dưới nhiều dạng Khoacute xử lyacute Cần chuẩn hoacutea

Số chấm động theo chuẩn IEEE 754 Cơ số 2 Coacute 2 dạng

Chiacutenh xaacutec đơn 32 bit độ lệch mũ (bias) 127 Cocircng thức tiacutenh giaacute trị X = (-1)S x 1m x 2e-127

Chiacutenh xaacutec keacutep 64 bit độ lệch mũ (bias) 1023 Cocircng thức tiacutenh giaacute trị X = (-1)S x 1m x 2e-1023

Số chấm động theo chuẩn IEEE 754

Caacutec quy ước đặc biệt

Caacutec bit của e bằng 0 caacutec bit của m bằng 0 thigrave X= plusmn 0 x000 0000 0000 0000 0000 0000 0000 0000 X= plusmn 0

Caacutec bit của e bằng 1 caacutec bit của m bằng 0 thigrave X= plusmn infin x111 1111 1000 0000 0000 0000 0000 0000 1048774 X= plusmn infin

Caacutec bit của e bằng 1 cograven m coacute iacutet nhất 1 bit bằng 1 thigrave noacute khocircng biểu diễn cho số nagraveo cả (NaN ndash not a number)

Biểu diễn kyacute tự

Bộ matilde ASCII (American Standard Code for Information Interchange) Do ANSI (American National Standard Institute)

thiết kế Bộ matilde 8 bit coacute thể matilde hoacutea được 28 =256 kyacute tự

coacute matilde từ 0016 divide FF16 trong đoacute 128 kyacute tự chuẩn coacute matilde từ 0016 divide 7F16 128 kyacute tự mở rộng coacute matilde từ 8016 divide FF16

Bộ matilde Unicode

Bộ matilde ASCII Caacutec kyacute tự chuẩn

26 chữ caacutei hoa lsquoArsquo đến lsquoZrsquo coacute matilde từ 4116 đến 5A16 (65 đến 90) lsquoArsquo 1048774 0100 0001 = 4116 lsquoBrsquo 1048774 0100 0010 = 4216 lsquoZrsquo 1048774 0101 1010 = 5A16

26 chữ caacutei thường lsquoarsquo đến lsquozrsquo coacute matilde từ 6116 đến 7A16 (97 đến 122) lsquoarsquo 1048774 0110 0001 = 6116 lsquobrsquo 1048774 0110 0010 = 6216 lsquozrsquo 1048774 0111 1010 = 7A16

10 chữ số thập phacircn từ 0 đến 9 coacute matilde từ 3016 đến 3916 (48 đến 57) lsquo0rsquo 1048774 0011 0000 = 3016 lsquo1rsquo 1048774 0011 0001 = 3116 lsquo9rsquo 1048774 0011 1001 = 3916

Bộ matilde hợp nhất Unicode

Do caacutec hatildeng maacutey tiacutenh hagraveng đầu thiết kế Bộ matilde 16-bit Bộ matilde đa ngocircn ngữ Coacute hỗ trợ caacutec kyacute tự tiếng Việt

Page 21: Kiến trúc máy tính

Thứ tự lưu trữ caacutec byte của dữ liệu

Bộ nhớ chiacutenh thường được tổ chức theo byte Độ dagravei từ dữ liệu coacute thể chiếm từ một đến

nhiều byterArr cần phải biết thứ tự lưu trữ caacutec byte trong bộ nhớ

chiacutenh với caacutec dữ liệu nhiều byte

Thứ tự lưu trữ caacutec byte của dữ liệu

Coacute 2 caacutech lưu trữ Lưu trữ đầu nhỏ (Little-endian) Byte thấp được lưu trữ ở

ngăn nhớ coacute địa chỉ nhỏ hơn byte cao được lưu trữ ở ngăn nhớ coacute địa chỉ lớn hơn

Lưu trữ đầu to (Big-endian) Byte cao được lưu trữ ở ngăn nhớ coacute địa chỉ nhỏ hơn byte thấp được lưu trữ ở ngăn nhớ coacute địa chỉ lớn hơn

Intel 80x86 vagrave caacutec Pentium Little-endianrArr Motorola 680x0 vagrave caacutec bộ xử lyacute RISC Big-endianrArr Power PC vagrave Itanium cả hairArr

33 Biểu diễn số nguyecircn

Coacute hai loại số nguyecircn Số nguyecircn khocircng dấu (Unsigned Integer) Số nguyecircn coacute dấu (Signed Integer)

Biểu diễn số nguyecircn khocircng dấu Dugraveng n bit biểu diễn số nguyecircn khocircng dấu A

an-1an-2hellipa2a1a0

Giaacute trị của A được tiacutenh như sau Dải biểu diễn của A 0 -- 2n-1

Số 8 bit coacute giaacute trị 0 divide 255 Số 16 bit coacute giaacute trị 0 divide 65 535 Số 32 bit coacute giaacute trị 0 divide 4 294 967 295

1

0

2n

i

iiaA

Biểu diễn số nguyecircn khocircng dấun=8 bit

Biểu diễn được caacutec giaacute trị từ 0 đến 255 0000 0000 = 0 Chuacute yacute 0000 0001 = 1 1111 1111 0000 0010 = 2 + 0000 0001 0000 0011 = 3 1 0000 0000 hellip Vậy 255 + 1 = 0 1111 1111 = 255 do tragraven nhớ ra ngoagravei

Biểu diễn số nguyecircn coacute dấu

Số bugrave một vagrave Số bugrave hai Giả sử A lagrave một số nhị phacircn ta coacute Số bugrave một của A nhận được bằng caacutech đảo giaacute trị caacutec bit

của A (Số bugrave hai của A) = (Số bugrave một của A) + 1

Viacute dụ với n= 8 bit Giả sử coacute A = 0010 0101 Số bugrave một của A = 1101 1010

+ 1 Số bugrave hai của A = 1101 1011

Vigrave A + (Số bugrave hai của A) = 0 dugraveng số bugrave hai để biểu diễn cho số acircm

Biểu diễn số nguyecircn coacute dấu

Biểu diễn số nguyecircn coacute dấu bằng matilde bugrave hai Dugraveng n bit biểu diễn số nguyecircn coacute dấu A

an-1an-2hellipa2a1a0

Qui ước chọn bit coacute trọng số cao nhất (MSB) lagravem bit dấu Với A lagrave số dương bit an-1 = 0 caacutec bit cograven lại biểu diễn

độ lớn như số khocircng dấu Với A lagrave số acircm được biểu diễn bằng số bugrave hai của số

dương tương ứng vigrave vậy bit an-1 = 1

Biểu diễn số nguyecircn coacute dấu

Dạng tổng quaacutet của số nguyecircn A

an-1an-2hellipa2a1a0

Giaacute trị của A được xaacutec định như sau

Dải biểu diễn -2n-1 divide 2n-1-1 Số 8 bit coacute dấu coacute giaacute trị -128 divide +127 Số 16 bit coacute dấu coacute giaacute trị -32768 divide +32767

2

0

11 22

n

i

ii

nn aaA

Biểu diễn số nguyecircn coacute dấu n = 8 bit Biểu diễn được caacutec giaacute trị từ -128 đến +127 0000 0000 = 0 0000 0001 = +1 0000 0010 = +2 Chuacute yacute 0000 0011 = +3 +127 + 1 = -128 hellip -128 - 1 = +127 0111 1111 = +127 do tragraven xảy ra 1000 0000 = - 128 1000 0001 = - 127 hellip 1111 1110 = -2 1111 1111 = -1

Biểu diễn số nguyecircn coacute dấu

Chuyển đổi từ byte thagravenh word Đối với số dương

+19 = 0001 0011 (8 bit) +19 = 0000 0000 0001 0011 (16 bit)thecircm 8 bit 0 becircn traacutei

Đối với số acircm - 19 = 1110 1101 (8 bit) - 19 = 1111 1111 1110 1101 (16 bit)thecircm 8 bit 1 becircn traacutei

Với n=32 bit biểu diễn từ -231 đến 231-1 Với n=64 bit biểu diễn từ -263 đến 263-1

Biểu diễn số nguyecircn theo matilde BCD Binary Coded Decimal Code Số BCD được dugraveng để tiacutenh toaacuten trecircn số thập phacircn

trong hệ nhị phacircn Số BCD lagrave số viết theo hệ 16 nhưng giaacute trị tiacutenh theo

hệ 10 Số 12BCD được viết trong hệ 2 lagrave 0001 0010 nhưng coacute giaacute

trị lagrave 12 thay vigrave 18 (1216= 1810) Dugraveng 4 bit để matilde hoaacute cho caacutec chữ số thập phacircn từ 0 đến 9

0 0000 3 0011 6 0110 9 10011 0001 4 0100 7 0111 2 0010 5 0101 8 1000

Coacute 6 tổ hợp khocircng sử dụng 1010 1011 1100 1101 1110 1111

Caacutec kiểu lưu trữ số BCD

BCD khocircng goacutei (Unpacked BCD) Mỗi số BCD 4-bit được lưu trữ trong 4-bit thấp

của mỗi byte Viacute dụ Số 35 được lưu trữ 2 byte

0011 0101

BCD goacutei (Packed BCD) Hai số BCD được lưu trữ trong 1 byte Viacute dụ số 35 được lưu trữ 1 byte

0 0 1 1 0 1 0 1

Thực hiện caacutec pheacutep toaacuten số học với số nguyecircn Pheacutep cộng Pheacutep đảo dấu

Pheacutep đảo dấu trong maacutey tiacutenh thực chất lagrave lấy bugrave 2 Pheacutep trừ Nhacircn số nguyecircn

khocircng dấu coacute dấu

Thuật toaacuten nhacircn nhanh Booth Chia số nguyecircn

khocircng dấu coacute dấu

Số dấu chấm động

Số chấm động (floating point) dugraveng để tiacutenh toaacuten trecircn số thực một số thực X được biểu diễn theo kiểu số dấu chấm động

như sauX = plusmn m Bplusmne

m lagrave phần định trị (Mantissa) B lagrave cơ số (base) e lagrave phần mũ (Exponent)

m (mantissa) quyết định độ chiacutenh xaacutec B (base) e (exponent) quyết định độ lớnnhỏ

Số dấu chấm động

Một giaacute trị coacute thể biểu diễn dưới nhiều dạng Khoacute xử lyacute Cần chuẩn hoacutea

Số chấm động theo chuẩn IEEE 754 Cơ số 2 Coacute 2 dạng

Chiacutenh xaacutec đơn 32 bit độ lệch mũ (bias) 127 Cocircng thức tiacutenh giaacute trị X = (-1)S x 1m x 2e-127

Chiacutenh xaacutec keacutep 64 bit độ lệch mũ (bias) 1023 Cocircng thức tiacutenh giaacute trị X = (-1)S x 1m x 2e-1023

Số chấm động theo chuẩn IEEE 754

Caacutec quy ước đặc biệt

Caacutec bit của e bằng 0 caacutec bit của m bằng 0 thigrave X= plusmn 0 x000 0000 0000 0000 0000 0000 0000 0000 X= plusmn 0

Caacutec bit của e bằng 1 caacutec bit của m bằng 0 thigrave X= plusmn infin x111 1111 1000 0000 0000 0000 0000 0000 1048774 X= plusmn infin

Caacutec bit của e bằng 1 cograven m coacute iacutet nhất 1 bit bằng 1 thigrave noacute khocircng biểu diễn cho số nagraveo cả (NaN ndash not a number)

Biểu diễn kyacute tự

Bộ matilde ASCII (American Standard Code for Information Interchange) Do ANSI (American National Standard Institute)

thiết kế Bộ matilde 8 bit coacute thể matilde hoacutea được 28 =256 kyacute tự

coacute matilde từ 0016 divide FF16 trong đoacute 128 kyacute tự chuẩn coacute matilde từ 0016 divide 7F16 128 kyacute tự mở rộng coacute matilde từ 8016 divide FF16

Bộ matilde Unicode

Bộ matilde ASCII Caacutec kyacute tự chuẩn

26 chữ caacutei hoa lsquoArsquo đến lsquoZrsquo coacute matilde từ 4116 đến 5A16 (65 đến 90) lsquoArsquo 1048774 0100 0001 = 4116 lsquoBrsquo 1048774 0100 0010 = 4216 lsquoZrsquo 1048774 0101 1010 = 5A16

26 chữ caacutei thường lsquoarsquo đến lsquozrsquo coacute matilde từ 6116 đến 7A16 (97 đến 122) lsquoarsquo 1048774 0110 0001 = 6116 lsquobrsquo 1048774 0110 0010 = 6216 lsquozrsquo 1048774 0111 1010 = 7A16

10 chữ số thập phacircn từ 0 đến 9 coacute matilde từ 3016 đến 3916 (48 đến 57) lsquo0rsquo 1048774 0011 0000 = 3016 lsquo1rsquo 1048774 0011 0001 = 3116 lsquo9rsquo 1048774 0011 1001 = 3916

Bộ matilde hợp nhất Unicode

Do caacutec hatildeng maacutey tiacutenh hagraveng đầu thiết kế Bộ matilde 16-bit Bộ matilde đa ngocircn ngữ Coacute hỗ trợ caacutec kyacute tự tiếng Việt

Page 22: Kiến trúc máy tính

Thứ tự lưu trữ caacutec byte của dữ liệu

Coacute 2 caacutech lưu trữ Lưu trữ đầu nhỏ (Little-endian) Byte thấp được lưu trữ ở

ngăn nhớ coacute địa chỉ nhỏ hơn byte cao được lưu trữ ở ngăn nhớ coacute địa chỉ lớn hơn

Lưu trữ đầu to (Big-endian) Byte cao được lưu trữ ở ngăn nhớ coacute địa chỉ nhỏ hơn byte thấp được lưu trữ ở ngăn nhớ coacute địa chỉ lớn hơn

Intel 80x86 vagrave caacutec Pentium Little-endianrArr Motorola 680x0 vagrave caacutec bộ xử lyacute RISC Big-endianrArr Power PC vagrave Itanium cả hairArr

33 Biểu diễn số nguyecircn

Coacute hai loại số nguyecircn Số nguyecircn khocircng dấu (Unsigned Integer) Số nguyecircn coacute dấu (Signed Integer)

Biểu diễn số nguyecircn khocircng dấu Dugraveng n bit biểu diễn số nguyecircn khocircng dấu A

an-1an-2hellipa2a1a0

Giaacute trị của A được tiacutenh như sau Dải biểu diễn của A 0 -- 2n-1

Số 8 bit coacute giaacute trị 0 divide 255 Số 16 bit coacute giaacute trị 0 divide 65 535 Số 32 bit coacute giaacute trị 0 divide 4 294 967 295

1

0

2n

i

iiaA

Biểu diễn số nguyecircn khocircng dấun=8 bit

Biểu diễn được caacutec giaacute trị từ 0 đến 255 0000 0000 = 0 Chuacute yacute 0000 0001 = 1 1111 1111 0000 0010 = 2 + 0000 0001 0000 0011 = 3 1 0000 0000 hellip Vậy 255 + 1 = 0 1111 1111 = 255 do tragraven nhớ ra ngoagravei

Biểu diễn số nguyecircn coacute dấu

Số bugrave một vagrave Số bugrave hai Giả sử A lagrave một số nhị phacircn ta coacute Số bugrave một của A nhận được bằng caacutech đảo giaacute trị caacutec bit

của A (Số bugrave hai của A) = (Số bugrave một của A) + 1

Viacute dụ với n= 8 bit Giả sử coacute A = 0010 0101 Số bugrave một của A = 1101 1010

+ 1 Số bugrave hai của A = 1101 1011

Vigrave A + (Số bugrave hai của A) = 0 dugraveng số bugrave hai để biểu diễn cho số acircm

Biểu diễn số nguyecircn coacute dấu

Biểu diễn số nguyecircn coacute dấu bằng matilde bugrave hai Dugraveng n bit biểu diễn số nguyecircn coacute dấu A

an-1an-2hellipa2a1a0

Qui ước chọn bit coacute trọng số cao nhất (MSB) lagravem bit dấu Với A lagrave số dương bit an-1 = 0 caacutec bit cograven lại biểu diễn

độ lớn như số khocircng dấu Với A lagrave số acircm được biểu diễn bằng số bugrave hai của số

dương tương ứng vigrave vậy bit an-1 = 1

Biểu diễn số nguyecircn coacute dấu

Dạng tổng quaacutet của số nguyecircn A

an-1an-2hellipa2a1a0

Giaacute trị của A được xaacutec định như sau

Dải biểu diễn -2n-1 divide 2n-1-1 Số 8 bit coacute dấu coacute giaacute trị -128 divide +127 Số 16 bit coacute dấu coacute giaacute trị -32768 divide +32767

2

0

11 22

n

i

ii

nn aaA

Biểu diễn số nguyecircn coacute dấu n = 8 bit Biểu diễn được caacutec giaacute trị từ -128 đến +127 0000 0000 = 0 0000 0001 = +1 0000 0010 = +2 Chuacute yacute 0000 0011 = +3 +127 + 1 = -128 hellip -128 - 1 = +127 0111 1111 = +127 do tragraven xảy ra 1000 0000 = - 128 1000 0001 = - 127 hellip 1111 1110 = -2 1111 1111 = -1

Biểu diễn số nguyecircn coacute dấu

Chuyển đổi từ byte thagravenh word Đối với số dương

+19 = 0001 0011 (8 bit) +19 = 0000 0000 0001 0011 (16 bit)thecircm 8 bit 0 becircn traacutei

Đối với số acircm - 19 = 1110 1101 (8 bit) - 19 = 1111 1111 1110 1101 (16 bit)thecircm 8 bit 1 becircn traacutei

Với n=32 bit biểu diễn từ -231 đến 231-1 Với n=64 bit biểu diễn từ -263 đến 263-1

Biểu diễn số nguyecircn theo matilde BCD Binary Coded Decimal Code Số BCD được dugraveng để tiacutenh toaacuten trecircn số thập phacircn

trong hệ nhị phacircn Số BCD lagrave số viết theo hệ 16 nhưng giaacute trị tiacutenh theo

hệ 10 Số 12BCD được viết trong hệ 2 lagrave 0001 0010 nhưng coacute giaacute

trị lagrave 12 thay vigrave 18 (1216= 1810) Dugraveng 4 bit để matilde hoaacute cho caacutec chữ số thập phacircn từ 0 đến 9

0 0000 3 0011 6 0110 9 10011 0001 4 0100 7 0111 2 0010 5 0101 8 1000

Coacute 6 tổ hợp khocircng sử dụng 1010 1011 1100 1101 1110 1111

Caacutec kiểu lưu trữ số BCD

BCD khocircng goacutei (Unpacked BCD) Mỗi số BCD 4-bit được lưu trữ trong 4-bit thấp

của mỗi byte Viacute dụ Số 35 được lưu trữ 2 byte

0011 0101

BCD goacutei (Packed BCD) Hai số BCD được lưu trữ trong 1 byte Viacute dụ số 35 được lưu trữ 1 byte

0 0 1 1 0 1 0 1

Thực hiện caacutec pheacutep toaacuten số học với số nguyecircn Pheacutep cộng Pheacutep đảo dấu

Pheacutep đảo dấu trong maacutey tiacutenh thực chất lagrave lấy bugrave 2 Pheacutep trừ Nhacircn số nguyecircn

khocircng dấu coacute dấu

Thuật toaacuten nhacircn nhanh Booth Chia số nguyecircn

khocircng dấu coacute dấu

Số dấu chấm động

Số chấm động (floating point) dugraveng để tiacutenh toaacuten trecircn số thực một số thực X được biểu diễn theo kiểu số dấu chấm động

như sauX = plusmn m Bplusmne

m lagrave phần định trị (Mantissa) B lagrave cơ số (base) e lagrave phần mũ (Exponent)

m (mantissa) quyết định độ chiacutenh xaacutec B (base) e (exponent) quyết định độ lớnnhỏ

Số dấu chấm động

Một giaacute trị coacute thể biểu diễn dưới nhiều dạng Khoacute xử lyacute Cần chuẩn hoacutea

Số chấm động theo chuẩn IEEE 754 Cơ số 2 Coacute 2 dạng

Chiacutenh xaacutec đơn 32 bit độ lệch mũ (bias) 127 Cocircng thức tiacutenh giaacute trị X = (-1)S x 1m x 2e-127

Chiacutenh xaacutec keacutep 64 bit độ lệch mũ (bias) 1023 Cocircng thức tiacutenh giaacute trị X = (-1)S x 1m x 2e-1023

Số chấm động theo chuẩn IEEE 754

Caacutec quy ước đặc biệt

Caacutec bit của e bằng 0 caacutec bit của m bằng 0 thigrave X= plusmn 0 x000 0000 0000 0000 0000 0000 0000 0000 X= plusmn 0

Caacutec bit của e bằng 1 caacutec bit của m bằng 0 thigrave X= plusmn infin x111 1111 1000 0000 0000 0000 0000 0000 1048774 X= plusmn infin

Caacutec bit của e bằng 1 cograven m coacute iacutet nhất 1 bit bằng 1 thigrave noacute khocircng biểu diễn cho số nagraveo cả (NaN ndash not a number)

Biểu diễn kyacute tự

Bộ matilde ASCII (American Standard Code for Information Interchange) Do ANSI (American National Standard Institute)

thiết kế Bộ matilde 8 bit coacute thể matilde hoacutea được 28 =256 kyacute tự

coacute matilde từ 0016 divide FF16 trong đoacute 128 kyacute tự chuẩn coacute matilde từ 0016 divide 7F16 128 kyacute tự mở rộng coacute matilde từ 8016 divide FF16

Bộ matilde Unicode

Bộ matilde ASCII Caacutec kyacute tự chuẩn

26 chữ caacutei hoa lsquoArsquo đến lsquoZrsquo coacute matilde từ 4116 đến 5A16 (65 đến 90) lsquoArsquo 1048774 0100 0001 = 4116 lsquoBrsquo 1048774 0100 0010 = 4216 lsquoZrsquo 1048774 0101 1010 = 5A16

26 chữ caacutei thường lsquoarsquo đến lsquozrsquo coacute matilde từ 6116 đến 7A16 (97 đến 122) lsquoarsquo 1048774 0110 0001 = 6116 lsquobrsquo 1048774 0110 0010 = 6216 lsquozrsquo 1048774 0111 1010 = 7A16

10 chữ số thập phacircn từ 0 đến 9 coacute matilde từ 3016 đến 3916 (48 đến 57) lsquo0rsquo 1048774 0011 0000 = 3016 lsquo1rsquo 1048774 0011 0001 = 3116 lsquo9rsquo 1048774 0011 1001 = 3916

Bộ matilde hợp nhất Unicode

Do caacutec hatildeng maacutey tiacutenh hagraveng đầu thiết kế Bộ matilde 16-bit Bộ matilde đa ngocircn ngữ Coacute hỗ trợ caacutec kyacute tự tiếng Việt

Page 23: Kiến trúc máy tính

33 Biểu diễn số nguyecircn

Coacute hai loại số nguyecircn Số nguyecircn khocircng dấu (Unsigned Integer) Số nguyecircn coacute dấu (Signed Integer)

Biểu diễn số nguyecircn khocircng dấu Dugraveng n bit biểu diễn số nguyecircn khocircng dấu A

an-1an-2hellipa2a1a0

Giaacute trị của A được tiacutenh như sau Dải biểu diễn của A 0 -- 2n-1

Số 8 bit coacute giaacute trị 0 divide 255 Số 16 bit coacute giaacute trị 0 divide 65 535 Số 32 bit coacute giaacute trị 0 divide 4 294 967 295

1

0

2n

i

iiaA

Biểu diễn số nguyecircn khocircng dấun=8 bit

Biểu diễn được caacutec giaacute trị từ 0 đến 255 0000 0000 = 0 Chuacute yacute 0000 0001 = 1 1111 1111 0000 0010 = 2 + 0000 0001 0000 0011 = 3 1 0000 0000 hellip Vậy 255 + 1 = 0 1111 1111 = 255 do tragraven nhớ ra ngoagravei

Biểu diễn số nguyecircn coacute dấu

Số bugrave một vagrave Số bugrave hai Giả sử A lagrave một số nhị phacircn ta coacute Số bugrave một của A nhận được bằng caacutech đảo giaacute trị caacutec bit

của A (Số bugrave hai của A) = (Số bugrave một của A) + 1

Viacute dụ với n= 8 bit Giả sử coacute A = 0010 0101 Số bugrave một của A = 1101 1010

+ 1 Số bugrave hai của A = 1101 1011

Vigrave A + (Số bugrave hai của A) = 0 dugraveng số bugrave hai để biểu diễn cho số acircm

Biểu diễn số nguyecircn coacute dấu

Biểu diễn số nguyecircn coacute dấu bằng matilde bugrave hai Dugraveng n bit biểu diễn số nguyecircn coacute dấu A

an-1an-2hellipa2a1a0

Qui ước chọn bit coacute trọng số cao nhất (MSB) lagravem bit dấu Với A lagrave số dương bit an-1 = 0 caacutec bit cograven lại biểu diễn

độ lớn như số khocircng dấu Với A lagrave số acircm được biểu diễn bằng số bugrave hai của số

dương tương ứng vigrave vậy bit an-1 = 1

Biểu diễn số nguyecircn coacute dấu

Dạng tổng quaacutet của số nguyecircn A

an-1an-2hellipa2a1a0

Giaacute trị của A được xaacutec định như sau

Dải biểu diễn -2n-1 divide 2n-1-1 Số 8 bit coacute dấu coacute giaacute trị -128 divide +127 Số 16 bit coacute dấu coacute giaacute trị -32768 divide +32767

2

0

11 22

n

i

ii

nn aaA

Biểu diễn số nguyecircn coacute dấu n = 8 bit Biểu diễn được caacutec giaacute trị từ -128 đến +127 0000 0000 = 0 0000 0001 = +1 0000 0010 = +2 Chuacute yacute 0000 0011 = +3 +127 + 1 = -128 hellip -128 - 1 = +127 0111 1111 = +127 do tragraven xảy ra 1000 0000 = - 128 1000 0001 = - 127 hellip 1111 1110 = -2 1111 1111 = -1

Biểu diễn số nguyecircn coacute dấu

Chuyển đổi từ byte thagravenh word Đối với số dương

+19 = 0001 0011 (8 bit) +19 = 0000 0000 0001 0011 (16 bit)thecircm 8 bit 0 becircn traacutei

Đối với số acircm - 19 = 1110 1101 (8 bit) - 19 = 1111 1111 1110 1101 (16 bit)thecircm 8 bit 1 becircn traacutei

Với n=32 bit biểu diễn từ -231 đến 231-1 Với n=64 bit biểu diễn từ -263 đến 263-1

Biểu diễn số nguyecircn theo matilde BCD Binary Coded Decimal Code Số BCD được dugraveng để tiacutenh toaacuten trecircn số thập phacircn

trong hệ nhị phacircn Số BCD lagrave số viết theo hệ 16 nhưng giaacute trị tiacutenh theo

hệ 10 Số 12BCD được viết trong hệ 2 lagrave 0001 0010 nhưng coacute giaacute

trị lagrave 12 thay vigrave 18 (1216= 1810) Dugraveng 4 bit để matilde hoaacute cho caacutec chữ số thập phacircn từ 0 đến 9

0 0000 3 0011 6 0110 9 10011 0001 4 0100 7 0111 2 0010 5 0101 8 1000

Coacute 6 tổ hợp khocircng sử dụng 1010 1011 1100 1101 1110 1111

Caacutec kiểu lưu trữ số BCD

BCD khocircng goacutei (Unpacked BCD) Mỗi số BCD 4-bit được lưu trữ trong 4-bit thấp

của mỗi byte Viacute dụ Số 35 được lưu trữ 2 byte

0011 0101

BCD goacutei (Packed BCD) Hai số BCD được lưu trữ trong 1 byte Viacute dụ số 35 được lưu trữ 1 byte

0 0 1 1 0 1 0 1

Thực hiện caacutec pheacutep toaacuten số học với số nguyecircn Pheacutep cộng Pheacutep đảo dấu

Pheacutep đảo dấu trong maacutey tiacutenh thực chất lagrave lấy bugrave 2 Pheacutep trừ Nhacircn số nguyecircn

khocircng dấu coacute dấu

Thuật toaacuten nhacircn nhanh Booth Chia số nguyecircn

khocircng dấu coacute dấu

Số dấu chấm động

Số chấm động (floating point) dugraveng để tiacutenh toaacuten trecircn số thực một số thực X được biểu diễn theo kiểu số dấu chấm động

như sauX = plusmn m Bplusmne

m lagrave phần định trị (Mantissa) B lagrave cơ số (base) e lagrave phần mũ (Exponent)

m (mantissa) quyết định độ chiacutenh xaacutec B (base) e (exponent) quyết định độ lớnnhỏ

Số dấu chấm động

Một giaacute trị coacute thể biểu diễn dưới nhiều dạng Khoacute xử lyacute Cần chuẩn hoacutea

Số chấm động theo chuẩn IEEE 754 Cơ số 2 Coacute 2 dạng

Chiacutenh xaacutec đơn 32 bit độ lệch mũ (bias) 127 Cocircng thức tiacutenh giaacute trị X = (-1)S x 1m x 2e-127

Chiacutenh xaacutec keacutep 64 bit độ lệch mũ (bias) 1023 Cocircng thức tiacutenh giaacute trị X = (-1)S x 1m x 2e-1023

Số chấm động theo chuẩn IEEE 754

Caacutec quy ước đặc biệt

Caacutec bit của e bằng 0 caacutec bit của m bằng 0 thigrave X= plusmn 0 x000 0000 0000 0000 0000 0000 0000 0000 X= plusmn 0

Caacutec bit của e bằng 1 caacutec bit của m bằng 0 thigrave X= plusmn infin x111 1111 1000 0000 0000 0000 0000 0000 1048774 X= plusmn infin

Caacutec bit của e bằng 1 cograven m coacute iacutet nhất 1 bit bằng 1 thigrave noacute khocircng biểu diễn cho số nagraveo cả (NaN ndash not a number)

Biểu diễn kyacute tự

Bộ matilde ASCII (American Standard Code for Information Interchange) Do ANSI (American National Standard Institute)

thiết kế Bộ matilde 8 bit coacute thể matilde hoacutea được 28 =256 kyacute tự

coacute matilde từ 0016 divide FF16 trong đoacute 128 kyacute tự chuẩn coacute matilde từ 0016 divide 7F16 128 kyacute tự mở rộng coacute matilde từ 8016 divide FF16

Bộ matilde Unicode

Bộ matilde ASCII Caacutec kyacute tự chuẩn

26 chữ caacutei hoa lsquoArsquo đến lsquoZrsquo coacute matilde từ 4116 đến 5A16 (65 đến 90) lsquoArsquo 1048774 0100 0001 = 4116 lsquoBrsquo 1048774 0100 0010 = 4216 lsquoZrsquo 1048774 0101 1010 = 5A16

26 chữ caacutei thường lsquoarsquo đến lsquozrsquo coacute matilde từ 6116 đến 7A16 (97 đến 122) lsquoarsquo 1048774 0110 0001 = 6116 lsquobrsquo 1048774 0110 0010 = 6216 lsquozrsquo 1048774 0111 1010 = 7A16

10 chữ số thập phacircn từ 0 đến 9 coacute matilde từ 3016 đến 3916 (48 đến 57) lsquo0rsquo 1048774 0011 0000 = 3016 lsquo1rsquo 1048774 0011 0001 = 3116 lsquo9rsquo 1048774 0011 1001 = 3916

Bộ matilde hợp nhất Unicode

Do caacutec hatildeng maacutey tiacutenh hagraveng đầu thiết kế Bộ matilde 16-bit Bộ matilde đa ngocircn ngữ Coacute hỗ trợ caacutec kyacute tự tiếng Việt

Page 24: Kiến trúc máy tính

Biểu diễn số nguyecircn khocircng dấun=8 bit

Biểu diễn được caacutec giaacute trị từ 0 đến 255 0000 0000 = 0 Chuacute yacute 0000 0001 = 1 1111 1111 0000 0010 = 2 + 0000 0001 0000 0011 = 3 1 0000 0000 hellip Vậy 255 + 1 = 0 1111 1111 = 255 do tragraven nhớ ra ngoagravei

Biểu diễn số nguyecircn coacute dấu

Số bugrave một vagrave Số bugrave hai Giả sử A lagrave một số nhị phacircn ta coacute Số bugrave một của A nhận được bằng caacutech đảo giaacute trị caacutec bit

của A (Số bugrave hai của A) = (Số bugrave một của A) + 1

Viacute dụ với n= 8 bit Giả sử coacute A = 0010 0101 Số bugrave một của A = 1101 1010

+ 1 Số bugrave hai của A = 1101 1011

Vigrave A + (Số bugrave hai của A) = 0 dugraveng số bugrave hai để biểu diễn cho số acircm

Biểu diễn số nguyecircn coacute dấu

Biểu diễn số nguyecircn coacute dấu bằng matilde bugrave hai Dugraveng n bit biểu diễn số nguyecircn coacute dấu A

an-1an-2hellipa2a1a0

Qui ước chọn bit coacute trọng số cao nhất (MSB) lagravem bit dấu Với A lagrave số dương bit an-1 = 0 caacutec bit cograven lại biểu diễn

độ lớn như số khocircng dấu Với A lagrave số acircm được biểu diễn bằng số bugrave hai của số

dương tương ứng vigrave vậy bit an-1 = 1

Biểu diễn số nguyecircn coacute dấu

Dạng tổng quaacutet của số nguyecircn A

an-1an-2hellipa2a1a0

Giaacute trị của A được xaacutec định như sau

Dải biểu diễn -2n-1 divide 2n-1-1 Số 8 bit coacute dấu coacute giaacute trị -128 divide +127 Số 16 bit coacute dấu coacute giaacute trị -32768 divide +32767

2

0

11 22

n

i

ii

nn aaA

Biểu diễn số nguyecircn coacute dấu n = 8 bit Biểu diễn được caacutec giaacute trị từ -128 đến +127 0000 0000 = 0 0000 0001 = +1 0000 0010 = +2 Chuacute yacute 0000 0011 = +3 +127 + 1 = -128 hellip -128 - 1 = +127 0111 1111 = +127 do tragraven xảy ra 1000 0000 = - 128 1000 0001 = - 127 hellip 1111 1110 = -2 1111 1111 = -1

Biểu diễn số nguyecircn coacute dấu

Chuyển đổi từ byte thagravenh word Đối với số dương

+19 = 0001 0011 (8 bit) +19 = 0000 0000 0001 0011 (16 bit)thecircm 8 bit 0 becircn traacutei

Đối với số acircm - 19 = 1110 1101 (8 bit) - 19 = 1111 1111 1110 1101 (16 bit)thecircm 8 bit 1 becircn traacutei

Với n=32 bit biểu diễn từ -231 đến 231-1 Với n=64 bit biểu diễn từ -263 đến 263-1

Biểu diễn số nguyecircn theo matilde BCD Binary Coded Decimal Code Số BCD được dugraveng để tiacutenh toaacuten trecircn số thập phacircn

trong hệ nhị phacircn Số BCD lagrave số viết theo hệ 16 nhưng giaacute trị tiacutenh theo

hệ 10 Số 12BCD được viết trong hệ 2 lagrave 0001 0010 nhưng coacute giaacute

trị lagrave 12 thay vigrave 18 (1216= 1810) Dugraveng 4 bit để matilde hoaacute cho caacutec chữ số thập phacircn từ 0 đến 9

0 0000 3 0011 6 0110 9 10011 0001 4 0100 7 0111 2 0010 5 0101 8 1000

Coacute 6 tổ hợp khocircng sử dụng 1010 1011 1100 1101 1110 1111

Caacutec kiểu lưu trữ số BCD

BCD khocircng goacutei (Unpacked BCD) Mỗi số BCD 4-bit được lưu trữ trong 4-bit thấp

của mỗi byte Viacute dụ Số 35 được lưu trữ 2 byte

0011 0101

BCD goacutei (Packed BCD) Hai số BCD được lưu trữ trong 1 byte Viacute dụ số 35 được lưu trữ 1 byte

0 0 1 1 0 1 0 1

Thực hiện caacutec pheacutep toaacuten số học với số nguyecircn Pheacutep cộng Pheacutep đảo dấu

Pheacutep đảo dấu trong maacutey tiacutenh thực chất lagrave lấy bugrave 2 Pheacutep trừ Nhacircn số nguyecircn

khocircng dấu coacute dấu

Thuật toaacuten nhacircn nhanh Booth Chia số nguyecircn

khocircng dấu coacute dấu

Số dấu chấm động

Số chấm động (floating point) dugraveng để tiacutenh toaacuten trecircn số thực một số thực X được biểu diễn theo kiểu số dấu chấm động

như sauX = plusmn m Bplusmne

m lagrave phần định trị (Mantissa) B lagrave cơ số (base) e lagrave phần mũ (Exponent)

m (mantissa) quyết định độ chiacutenh xaacutec B (base) e (exponent) quyết định độ lớnnhỏ

Số dấu chấm động

Một giaacute trị coacute thể biểu diễn dưới nhiều dạng Khoacute xử lyacute Cần chuẩn hoacutea

Số chấm động theo chuẩn IEEE 754 Cơ số 2 Coacute 2 dạng

Chiacutenh xaacutec đơn 32 bit độ lệch mũ (bias) 127 Cocircng thức tiacutenh giaacute trị X = (-1)S x 1m x 2e-127

Chiacutenh xaacutec keacutep 64 bit độ lệch mũ (bias) 1023 Cocircng thức tiacutenh giaacute trị X = (-1)S x 1m x 2e-1023

Số chấm động theo chuẩn IEEE 754

Caacutec quy ước đặc biệt

Caacutec bit của e bằng 0 caacutec bit của m bằng 0 thigrave X= plusmn 0 x000 0000 0000 0000 0000 0000 0000 0000 X= plusmn 0

Caacutec bit của e bằng 1 caacutec bit của m bằng 0 thigrave X= plusmn infin x111 1111 1000 0000 0000 0000 0000 0000 1048774 X= plusmn infin

Caacutec bit của e bằng 1 cograven m coacute iacutet nhất 1 bit bằng 1 thigrave noacute khocircng biểu diễn cho số nagraveo cả (NaN ndash not a number)

Biểu diễn kyacute tự

Bộ matilde ASCII (American Standard Code for Information Interchange) Do ANSI (American National Standard Institute)

thiết kế Bộ matilde 8 bit coacute thể matilde hoacutea được 28 =256 kyacute tự

coacute matilde từ 0016 divide FF16 trong đoacute 128 kyacute tự chuẩn coacute matilde từ 0016 divide 7F16 128 kyacute tự mở rộng coacute matilde từ 8016 divide FF16

Bộ matilde Unicode

Bộ matilde ASCII Caacutec kyacute tự chuẩn

26 chữ caacutei hoa lsquoArsquo đến lsquoZrsquo coacute matilde từ 4116 đến 5A16 (65 đến 90) lsquoArsquo 1048774 0100 0001 = 4116 lsquoBrsquo 1048774 0100 0010 = 4216 lsquoZrsquo 1048774 0101 1010 = 5A16

26 chữ caacutei thường lsquoarsquo đến lsquozrsquo coacute matilde từ 6116 đến 7A16 (97 đến 122) lsquoarsquo 1048774 0110 0001 = 6116 lsquobrsquo 1048774 0110 0010 = 6216 lsquozrsquo 1048774 0111 1010 = 7A16

10 chữ số thập phacircn từ 0 đến 9 coacute matilde từ 3016 đến 3916 (48 đến 57) lsquo0rsquo 1048774 0011 0000 = 3016 lsquo1rsquo 1048774 0011 0001 = 3116 lsquo9rsquo 1048774 0011 1001 = 3916

Bộ matilde hợp nhất Unicode

Do caacutec hatildeng maacutey tiacutenh hagraveng đầu thiết kế Bộ matilde 16-bit Bộ matilde đa ngocircn ngữ Coacute hỗ trợ caacutec kyacute tự tiếng Việt

Page 25: Kiến trúc máy tính

Biểu diễn số nguyecircn coacute dấu

Số bugrave một vagrave Số bugrave hai Giả sử A lagrave một số nhị phacircn ta coacute Số bugrave một của A nhận được bằng caacutech đảo giaacute trị caacutec bit

của A (Số bugrave hai của A) = (Số bugrave một của A) + 1

Viacute dụ với n= 8 bit Giả sử coacute A = 0010 0101 Số bugrave một của A = 1101 1010

+ 1 Số bugrave hai của A = 1101 1011

Vigrave A + (Số bugrave hai của A) = 0 dugraveng số bugrave hai để biểu diễn cho số acircm

Biểu diễn số nguyecircn coacute dấu

Biểu diễn số nguyecircn coacute dấu bằng matilde bugrave hai Dugraveng n bit biểu diễn số nguyecircn coacute dấu A

an-1an-2hellipa2a1a0

Qui ước chọn bit coacute trọng số cao nhất (MSB) lagravem bit dấu Với A lagrave số dương bit an-1 = 0 caacutec bit cograven lại biểu diễn

độ lớn như số khocircng dấu Với A lagrave số acircm được biểu diễn bằng số bugrave hai của số

dương tương ứng vigrave vậy bit an-1 = 1

Biểu diễn số nguyecircn coacute dấu

Dạng tổng quaacutet của số nguyecircn A

an-1an-2hellipa2a1a0

Giaacute trị của A được xaacutec định như sau

Dải biểu diễn -2n-1 divide 2n-1-1 Số 8 bit coacute dấu coacute giaacute trị -128 divide +127 Số 16 bit coacute dấu coacute giaacute trị -32768 divide +32767

2

0

11 22

n

i

ii

nn aaA

Biểu diễn số nguyecircn coacute dấu n = 8 bit Biểu diễn được caacutec giaacute trị từ -128 đến +127 0000 0000 = 0 0000 0001 = +1 0000 0010 = +2 Chuacute yacute 0000 0011 = +3 +127 + 1 = -128 hellip -128 - 1 = +127 0111 1111 = +127 do tragraven xảy ra 1000 0000 = - 128 1000 0001 = - 127 hellip 1111 1110 = -2 1111 1111 = -1

Biểu diễn số nguyecircn coacute dấu

Chuyển đổi từ byte thagravenh word Đối với số dương

+19 = 0001 0011 (8 bit) +19 = 0000 0000 0001 0011 (16 bit)thecircm 8 bit 0 becircn traacutei

Đối với số acircm - 19 = 1110 1101 (8 bit) - 19 = 1111 1111 1110 1101 (16 bit)thecircm 8 bit 1 becircn traacutei

Với n=32 bit biểu diễn từ -231 đến 231-1 Với n=64 bit biểu diễn từ -263 đến 263-1

Biểu diễn số nguyecircn theo matilde BCD Binary Coded Decimal Code Số BCD được dugraveng để tiacutenh toaacuten trecircn số thập phacircn

trong hệ nhị phacircn Số BCD lagrave số viết theo hệ 16 nhưng giaacute trị tiacutenh theo

hệ 10 Số 12BCD được viết trong hệ 2 lagrave 0001 0010 nhưng coacute giaacute

trị lagrave 12 thay vigrave 18 (1216= 1810) Dugraveng 4 bit để matilde hoaacute cho caacutec chữ số thập phacircn từ 0 đến 9

0 0000 3 0011 6 0110 9 10011 0001 4 0100 7 0111 2 0010 5 0101 8 1000

Coacute 6 tổ hợp khocircng sử dụng 1010 1011 1100 1101 1110 1111

Caacutec kiểu lưu trữ số BCD

BCD khocircng goacutei (Unpacked BCD) Mỗi số BCD 4-bit được lưu trữ trong 4-bit thấp

của mỗi byte Viacute dụ Số 35 được lưu trữ 2 byte

0011 0101

BCD goacutei (Packed BCD) Hai số BCD được lưu trữ trong 1 byte Viacute dụ số 35 được lưu trữ 1 byte

0 0 1 1 0 1 0 1

Thực hiện caacutec pheacutep toaacuten số học với số nguyecircn Pheacutep cộng Pheacutep đảo dấu

Pheacutep đảo dấu trong maacutey tiacutenh thực chất lagrave lấy bugrave 2 Pheacutep trừ Nhacircn số nguyecircn

khocircng dấu coacute dấu

Thuật toaacuten nhacircn nhanh Booth Chia số nguyecircn

khocircng dấu coacute dấu

Số dấu chấm động

Số chấm động (floating point) dugraveng để tiacutenh toaacuten trecircn số thực một số thực X được biểu diễn theo kiểu số dấu chấm động

như sauX = plusmn m Bplusmne

m lagrave phần định trị (Mantissa) B lagrave cơ số (base) e lagrave phần mũ (Exponent)

m (mantissa) quyết định độ chiacutenh xaacutec B (base) e (exponent) quyết định độ lớnnhỏ

Số dấu chấm động

Một giaacute trị coacute thể biểu diễn dưới nhiều dạng Khoacute xử lyacute Cần chuẩn hoacutea

Số chấm động theo chuẩn IEEE 754 Cơ số 2 Coacute 2 dạng

Chiacutenh xaacutec đơn 32 bit độ lệch mũ (bias) 127 Cocircng thức tiacutenh giaacute trị X = (-1)S x 1m x 2e-127

Chiacutenh xaacutec keacutep 64 bit độ lệch mũ (bias) 1023 Cocircng thức tiacutenh giaacute trị X = (-1)S x 1m x 2e-1023

Số chấm động theo chuẩn IEEE 754

Caacutec quy ước đặc biệt

Caacutec bit của e bằng 0 caacutec bit của m bằng 0 thigrave X= plusmn 0 x000 0000 0000 0000 0000 0000 0000 0000 X= plusmn 0

Caacutec bit của e bằng 1 caacutec bit của m bằng 0 thigrave X= plusmn infin x111 1111 1000 0000 0000 0000 0000 0000 1048774 X= plusmn infin

Caacutec bit của e bằng 1 cograven m coacute iacutet nhất 1 bit bằng 1 thigrave noacute khocircng biểu diễn cho số nagraveo cả (NaN ndash not a number)

Biểu diễn kyacute tự

Bộ matilde ASCII (American Standard Code for Information Interchange) Do ANSI (American National Standard Institute)

thiết kế Bộ matilde 8 bit coacute thể matilde hoacutea được 28 =256 kyacute tự

coacute matilde từ 0016 divide FF16 trong đoacute 128 kyacute tự chuẩn coacute matilde từ 0016 divide 7F16 128 kyacute tự mở rộng coacute matilde từ 8016 divide FF16

Bộ matilde Unicode

Bộ matilde ASCII Caacutec kyacute tự chuẩn

26 chữ caacutei hoa lsquoArsquo đến lsquoZrsquo coacute matilde từ 4116 đến 5A16 (65 đến 90) lsquoArsquo 1048774 0100 0001 = 4116 lsquoBrsquo 1048774 0100 0010 = 4216 lsquoZrsquo 1048774 0101 1010 = 5A16

26 chữ caacutei thường lsquoarsquo đến lsquozrsquo coacute matilde từ 6116 đến 7A16 (97 đến 122) lsquoarsquo 1048774 0110 0001 = 6116 lsquobrsquo 1048774 0110 0010 = 6216 lsquozrsquo 1048774 0111 1010 = 7A16

10 chữ số thập phacircn từ 0 đến 9 coacute matilde từ 3016 đến 3916 (48 đến 57) lsquo0rsquo 1048774 0011 0000 = 3016 lsquo1rsquo 1048774 0011 0001 = 3116 lsquo9rsquo 1048774 0011 1001 = 3916

Bộ matilde hợp nhất Unicode

Do caacutec hatildeng maacutey tiacutenh hagraveng đầu thiết kế Bộ matilde 16-bit Bộ matilde đa ngocircn ngữ Coacute hỗ trợ caacutec kyacute tự tiếng Việt

Page 26: Kiến trúc máy tính

Biểu diễn số nguyecircn coacute dấu

Biểu diễn số nguyecircn coacute dấu bằng matilde bugrave hai Dugraveng n bit biểu diễn số nguyecircn coacute dấu A

an-1an-2hellipa2a1a0

Qui ước chọn bit coacute trọng số cao nhất (MSB) lagravem bit dấu Với A lagrave số dương bit an-1 = 0 caacutec bit cograven lại biểu diễn

độ lớn như số khocircng dấu Với A lagrave số acircm được biểu diễn bằng số bugrave hai của số

dương tương ứng vigrave vậy bit an-1 = 1

Biểu diễn số nguyecircn coacute dấu

Dạng tổng quaacutet của số nguyecircn A

an-1an-2hellipa2a1a0

Giaacute trị của A được xaacutec định như sau

Dải biểu diễn -2n-1 divide 2n-1-1 Số 8 bit coacute dấu coacute giaacute trị -128 divide +127 Số 16 bit coacute dấu coacute giaacute trị -32768 divide +32767

2

0

11 22

n

i

ii

nn aaA

Biểu diễn số nguyecircn coacute dấu n = 8 bit Biểu diễn được caacutec giaacute trị từ -128 đến +127 0000 0000 = 0 0000 0001 = +1 0000 0010 = +2 Chuacute yacute 0000 0011 = +3 +127 + 1 = -128 hellip -128 - 1 = +127 0111 1111 = +127 do tragraven xảy ra 1000 0000 = - 128 1000 0001 = - 127 hellip 1111 1110 = -2 1111 1111 = -1

Biểu diễn số nguyecircn coacute dấu

Chuyển đổi từ byte thagravenh word Đối với số dương

+19 = 0001 0011 (8 bit) +19 = 0000 0000 0001 0011 (16 bit)thecircm 8 bit 0 becircn traacutei

Đối với số acircm - 19 = 1110 1101 (8 bit) - 19 = 1111 1111 1110 1101 (16 bit)thecircm 8 bit 1 becircn traacutei

Với n=32 bit biểu diễn từ -231 đến 231-1 Với n=64 bit biểu diễn từ -263 đến 263-1

Biểu diễn số nguyecircn theo matilde BCD Binary Coded Decimal Code Số BCD được dugraveng để tiacutenh toaacuten trecircn số thập phacircn

trong hệ nhị phacircn Số BCD lagrave số viết theo hệ 16 nhưng giaacute trị tiacutenh theo

hệ 10 Số 12BCD được viết trong hệ 2 lagrave 0001 0010 nhưng coacute giaacute

trị lagrave 12 thay vigrave 18 (1216= 1810) Dugraveng 4 bit để matilde hoaacute cho caacutec chữ số thập phacircn từ 0 đến 9

0 0000 3 0011 6 0110 9 10011 0001 4 0100 7 0111 2 0010 5 0101 8 1000

Coacute 6 tổ hợp khocircng sử dụng 1010 1011 1100 1101 1110 1111

Caacutec kiểu lưu trữ số BCD

BCD khocircng goacutei (Unpacked BCD) Mỗi số BCD 4-bit được lưu trữ trong 4-bit thấp

của mỗi byte Viacute dụ Số 35 được lưu trữ 2 byte

0011 0101

BCD goacutei (Packed BCD) Hai số BCD được lưu trữ trong 1 byte Viacute dụ số 35 được lưu trữ 1 byte

0 0 1 1 0 1 0 1

Thực hiện caacutec pheacutep toaacuten số học với số nguyecircn Pheacutep cộng Pheacutep đảo dấu

Pheacutep đảo dấu trong maacutey tiacutenh thực chất lagrave lấy bugrave 2 Pheacutep trừ Nhacircn số nguyecircn

khocircng dấu coacute dấu

Thuật toaacuten nhacircn nhanh Booth Chia số nguyecircn

khocircng dấu coacute dấu

Số dấu chấm động

Số chấm động (floating point) dugraveng để tiacutenh toaacuten trecircn số thực một số thực X được biểu diễn theo kiểu số dấu chấm động

như sauX = plusmn m Bplusmne

m lagrave phần định trị (Mantissa) B lagrave cơ số (base) e lagrave phần mũ (Exponent)

m (mantissa) quyết định độ chiacutenh xaacutec B (base) e (exponent) quyết định độ lớnnhỏ

Số dấu chấm động

Một giaacute trị coacute thể biểu diễn dưới nhiều dạng Khoacute xử lyacute Cần chuẩn hoacutea

Số chấm động theo chuẩn IEEE 754 Cơ số 2 Coacute 2 dạng

Chiacutenh xaacutec đơn 32 bit độ lệch mũ (bias) 127 Cocircng thức tiacutenh giaacute trị X = (-1)S x 1m x 2e-127

Chiacutenh xaacutec keacutep 64 bit độ lệch mũ (bias) 1023 Cocircng thức tiacutenh giaacute trị X = (-1)S x 1m x 2e-1023

Số chấm động theo chuẩn IEEE 754

Caacutec quy ước đặc biệt

Caacutec bit của e bằng 0 caacutec bit của m bằng 0 thigrave X= plusmn 0 x000 0000 0000 0000 0000 0000 0000 0000 X= plusmn 0

Caacutec bit của e bằng 1 caacutec bit của m bằng 0 thigrave X= plusmn infin x111 1111 1000 0000 0000 0000 0000 0000 1048774 X= plusmn infin

Caacutec bit của e bằng 1 cograven m coacute iacutet nhất 1 bit bằng 1 thigrave noacute khocircng biểu diễn cho số nagraveo cả (NaN ndash not a number)

Biểu diễn kyacute tự

Bộ matilde ASCII (American Standard Code for Information Interchange) Do ANSI (American National Standard Institute)

thiết kế Bộ matilde 8 bit coacute thể matilde hoacutea được 28 =256 kyacute tự

coacute matilde từ 0016 divide FF16 trong đoacute 128 kyacute tự chuẩn coacute matilde từ 0016 divide 7F16 128 kyacute tự mở rộng coacute matilde từ 8016 divide FF16

Bộ matilde Unicode

Bộ matilde ASCII Caacutec kyacute tự chuẩn

26 chữ caacutei hoa lsquoArsquo đến lsquoZrsquo coacute matilde từ 4116 đến 5A16 (65 đến 90) lsquoArsquo 1048774 0100 0001 = 4116 lsquoBrsquo 1048774 0100 0010 = 4216 lsquoZrsquo 1048774 0101 1010 = 5A16

26 chữ caacutei thường lsquoarsquo đến lsquozrsquo coacute matilde từ 6116 đến 7A16 (97 đến 122) lsquoarsquo 1048774 0110 0001 = 6116 lsquobrsquo 1048774 0110 0010 = 6216 lsquozrsquo 1048774 0111 1010 = 7A16

10 chữ số thập phacircn từ 0 đến 9 coacute matilde từ 3016 đến 3916 (48 đến 57) lsquo0rsquo 1048774 0011 0000 = 3016 lsquo1rsquo 1048774 0011 0001 = 3116 lsquo9rsquo 1048774 0011 1001 = 3916

Bộ matilde hợp nhất Unicode

Do caacutec hatildeng maacutey tiacutenh hagraveng đầu thiết kế Bộ matilde 16-bit Bộ matilde đa ngocircn ngữ Coacute hỗ trợ caacutec kyacute tự tiếng Việt

Page 27: Kiến trúc máy tính

Biểu diễn số nguyecircn coacute dấu

Dạng tổng quaacutet của số nguyecircn A

an-1an-2hellipa2a1a0

Giaacute trị của A được xaacutec định như sau

Dải biểu diễn -2n-1 divide 2n-1-1 Số 8 bit coacute dấu coacute giaacute trị -128 divide +127 Số 16 bit coacute dấu coacute giaacute trị -32768 divide +32767

2

0

11 22

n

i

ii

nn aaA

Biểu diễn số nguyecircn coacute dấu n = 8 bit Biểu diễn được caacutec giaacute trị từ -128 đến +127 0000 0000 = 0 0000 0001 = +1 0000 0010 = +2 Chuacute yacute 0000 0011 = +3 +127 + 1 = -128 hellip -128 - 1 = +127 0111 1111 = +127 do tragraven xảy ra 1000 0000 = - 128 1000 0001 = - 127 hellip 1111 1110 = -2 1111 1111 = -1

Biểu diễn số nguyecircn coacute dấu

Chuyển đổi từ byte thagravenh word Đối với số dương

+19 = 0001 0011 (8 bit) +19 = 0000 0000 0001 0011 (16 bit)thecircm 8 bit 0 becircn traacutei

Đối với số acircm - 19 = 1110 1101 (8 bit) - 19 = 1111 1111 1110 1101 (16 bit)thecircm 8 bit 1 becircn traacutei

Với n=32 bit biểu diễn từ -231 đến 231-1 Với n=64 bit biểu diễn từ -263 đến 263-1

Biểu diễn số nguyecircn theo matilde BCD Binary Coded Decimal Code Số BCD được dugraveng để tiacutenh toaacuten trecircn số thập phacircn

trong hệ nhị phacircn Số BCD lagrave số viết theo hệ 16 nhưng giaacute trị tiacutenh theo

hệ 10 Số 12BCD được viết trong hệ 2 lagrave 0001 0010 nhưng coacute giaacute

trị lagrave 12 thay vigrave 18 (1216= 1810) Dugraveng 4 bit để matilde hoaacute cho caacutec chữ số thập phacircn từ 0 đến 9

0 0000 3 0011 6 0110 9 10011 0001 4 0100 7 0111 2 0010 5 0101 8 1000

Coacute 6 tổ hợp khocircng sử dụng 1010 1011 1100 1101 1110 1111

Caacutec kiểu lưu trữ số BCD

BCD khocircng goacutei (Unpacked BCD) Mỗi số BCD 4-bit được lưu trữ trong 4-bit thấp

của mỗi byte Viacute dụ Số 35 được lưu trữ 2 byte

0011 0101

BCD goacutei (Packed BCD) Hai số BCD được lưu trữ trong 1 byte Viacute dụ số 35 được lưu trữ 1 byte

0 0 1 1 0 1 0 1

Thực hiện caacutec pheacutep toaacuten số học với số nguyecircn Pheacutep cộng Pheacutep đảo dấu

Pheacutep đảo dấu trong maacutey tiacutenh thực chất lagrave lấy bugrave 2 Pheacutep trừ Nhacircn số nguyecircn

khocircng dấu coacute dấu

Thuật toaacuten nhacircn nhanh Booth Chia số nguyecircn

khocircng dấu coacute dấu

Số dấu chấm động

Số chấm động (floating point) dugraveng để tiacutenh toaacuten trecircn số thực một số thực X được biểu diễn theo kiểu số dấu chấm động

như sauX = plusmn m Bplusmne

m lagrave phần định trị (Mantissa) B lagrave cơ số (base) e lagrave phần mũ (Exponent)

m (mantissa) quyết định độ chiacutenh xaacutec B (base) e (exponent) quyết định độ lớnnhỏ

Số dấu chấm động

Một giaacute trị coacute thể biểu diễn dưới nhiều dạng Khoacute xử lyacute Cần chuẩn hoacutea

Số chấm động theo chuẩn IEEE 754 Cơ số 2 Coacute 2 dạng

Chiacutenh xaacutec đơn 32 bit độ lệch mũ (bias) 127 Cocircng thức tiacutenh giaacute trị X = (-1)S x 1m x 2e-127

Chiacutenh xaacutec keacutep 64 bit độ lệch mũ (bias) 1023 Cocircng thức tiacutenh giaacute trị X = (-1)S x 1m x 2e-1023

Số chấm động theo chuẩn IEEE 754

Caacutec quy ước đặc biệt

Caacutec bit của e bằng 0 caacutec bit của m bằng 0 thigrave X= plusmn 0 x000 0000 0000 0000 0000 0000 0000 0000 X= plusmn 0

Caacutec bit của e bằng 1 caacutec bit của m bằng 0 thigrave X= plusmn infin x111 1111 1000 0000 0000 0000 0000 0000 1048774 X= plusmn infin

Caacutec bit của e bằng 1 cograven m coacute iacutet nhất 1 bit bằng 1 thigrave noacute khocircng biểu diễn cho số nagraveo cả (NaN ndash not a number)

Biểu diễn kyacute tự

Bộ matilde ASCII (American Standard Code for Information Interchange) Do ANSI (American National Standard Institute)

thiết kế Bộ matilde 8 bit coacute thể matilde hoacutea được 28 =256 kyacute tự

coacute matilde từ 0016 divide FF16 trong đoacute 128 kyacute tự chuẩn coacute matilde từ 0016 divide 7F16 128 kyacute tự mở rộng coacute matilde từ 8016 divide FF16

Bộ matilde Unicode

Bộ matilde ASCII Caacutec kyacute tự chuẩn

26 chữ caacutei hoa lsquoArsquo đến lsquoZrsquo coacute matilde từ 4116 đến 5A16 (65 đến 90) lsquoArsquo 1048774 0100 0001 = 4116 lsquoBrsquo 1048774 0100 0010 = 4216 lsquoZrsquo 1048774 0101 1010 = 5A16

26 chữ caacutei thường lsquoarsquo đến lsquozrsquo coacute matilde từ 6116 đến 7A16 (97 đến 122) lsquoarsquo 1048774 0110 0001 = 6116 lsquobrsquo 1048774 0110 0010 = 6216 lsquozrsquo 1048774 0111 1010 = 7A16

10 chữ số thập phacircn từ 0 đến 9 coacute matilde từ 3016 đến 3916 (48 đến 57) lsquo0rsquo 1048774 0011 0000 = 3016 lsquo1rsquo 1048774 0011 0001 = 3116 lsquo9rsquo 1048774 0011 1001 = 3916

Bộ matilde hợp nhất Unicode

Do caacutec hatildeng maacutey tiacutenh hagraveng đầu thiết kế Bộ matilde 16-bit Bộ matilde đa ngocircn ngữ Coacute hỗ trợ caacutec kyacute tự tiếng Việt

Page 28: Kiến trúc máy tính

Biểu diễn số nguyecircn coacute dấu n = 8 bit Biểu diễn được caacutec giaacute trị từ -128 đến +127 0000 0000 = 0 0000 0001 = +1 0000 0010 = +2 Chuacute yacute 0000 0011 = +3 +127 + 1 = -128 hellip -128 - 1 = +127 0111 1111 = +127 do tragraven xảy ra 1000 0000 = - 128 1000 0001 = - 127 hellip 1111 1110 = -2 1111 1111 = -1

Biểu diễn số nguyecircn coacute dấu

Chuyển đổi từ byte thagravenh word Đối với số dương

+19 = 0001 0011 (8 bit) +19 = 0000 0000 0001 0011 (16 bit)thecircm 8 bit 0 becircn traacutei

Đối với số acircm - 19 = 1110 1101 (8 bit) - 19 = 1111 1111 1110 1101 (16 bit)thecircm 8 bit 1 becircn traacutei

Với n=32 bit biểu diễn từ -231 đến 231-1 Với n=64 bit biểu diễn từ -263 đến 263-1

Biểu diễn số nguyecircn theo matilde BCD Binary Coded Decimal Code Số BCD được dugraveng để tiacutenh toaacuten trecircn số thập phacircn

trong hệ nhị phacircn Số BCD lagrave số viết theo hệ 16 nhưng giaacute trị tiacutenh theo

hệ 10 Số 12BCD được viết trong hệ 2 lagrave 0001 0010 nhưng coacute giaacute

trị lagrave 12 thay vigrave 18 (1216= 1810) Dugraveng 4 bit để matilde hoaacute cho caacutec chữ số thập phacircn từ 0 đến 9

0 0000 3 0011 6 0110 9 10011 0001 4 0100 7 0111 2 0010 5 0101 8 1000

Coacute 6 tổ hợp khocircng sử dụng 1010 1011 1100 1101 1110 1111

Caacutec kiểu lưu trữ số BCD

BCD khocircng goacutei (Unpacked BCD) Mỗi số BCD 4-bit được lưu trữ trong 4-bit thấp

của mỗi byte Viacute dụ Số 35 được lưu trữ 2 byte

0011 0101

BCD goacutei (Packed BCD) Hai số BCD được lưu trữ trong 1 byte Viacute dụ số 35 được lưu trữ 1 byte

0 0 1 1 0 1 0 1

Thực hiện caacutec pheacutep toaacuten số học với số nguyecircn Pheacutep cộng Pheacutep đảo dấu

Pheacutep đảo dấu trong maacutey tiacutenh thực chất lagrave lấy bugrave 2 Pheacutep trừ Nhacircn số nguyecircn

khocircng dấu coacute dấu

Thuật toaacuten nhacircn nhanh Booth Chia số nguyecircn

khocircng dấu coacute dấu

Số dấu chấm động

Số chấm động (floating point) dugraveng để tiacutenh toaacuten trecircn số thực một số thực X được biểu diễn theo kiểu số dấu chấm động

như sauX = plusmn m Bplusmne

m lagrave phần định trị (Mantissa) B lagrave cơ số (base) e lagrave phần mũ (Exponent)

m (mantissa) quyết định độ chiacutenh xaacutec B (base) e (exponent) quyết định độ lớnnhỏ

Số dấu chấm động

Một giaacute trị coacute thể biểu diễn dưới nhiều dạng Khoacute xử lyacute Cần chuẩn hoacutea

Số chấm động theo chuẩn IEEE 754 Cơ số 2 Coacute 2 dạng

Chiacutenh xaacutec đơn 32 bit độ lệch mũ (bias) 127 Cocircng thức tiacutenh giaacute trị X = (-1)S x 1m x 2e-127

Chiacutenh xaacutec keacutep 64 bit độ lệch mũ (bias) 1023 Cocircng thức tiacutenh giaacute trị X = (-1)S x 1m x 2e-1023

Số chấm động theo chuẩn IEEE 754

Caacutec quy ước đặc biệt

Caacutec bit của e bằng 0 caacutec bit của m bằng 0 thigrave X= plusmn 0 x000 0000 0000 0000 0000 0000 0000 0000 X= plusmn 0

Caacutec bit của e bằng 1 caacutec bit của m bằng 0 thigrave X= plusmn infin x111 1111 1000 0000 0000 0000 0000 0000 1048774 X= plusmn infin

Caacutec bit của e bằng 1 cograven m coacute iacutet nhất 1 bit bằng 1 thigrave noacute khocircng biểu diễn cho số nagraveo cả (NaN ndash not a number)

Biểu diễn kyacute tự

Bộ matilde ASCII (American Standard Code for Information Interchange) Do ANSI (American National Standard Institute)

thiết kế Bộ matilde 8 bit coacute thể matilde hoacutea được 28 =256 kyacute tự

coacute matilde từ 0016 divide FF16 trong đoacute 128 kyacute tự chuẩn coacute matilde từ 0016 divide 7F16 128 kyacute tự mở rộng coacute matilde từ 8016 divide FF16

Bộ matilde Unicode

Bộ matilde ASCII Caacutec kyacute tự chuẩn

26 chữ caacutei hoa lsquoArsquo đến lsquoZrsquo coacute matilde từ 4116 đến 5A16 (65 đến 90) lsquoArsquo 1048774 0100 0001 = 4116 lsquoBrsquo 1048774 0100 0010 = 4216 lsquoZrsquo 1048774 0101 1010 = 5A16

26 chữ caacutei thường lsquoarsquo đến lsquozrsquo coacute matilde từ 6116 đến 7A16 (97 đến 122) lsquoarsquo 1048774 0110 0001 = 6116 lsquobrsquo 1048774 0110 0010 = 6216 lsquozrsquo 1048774 0111 1010 = 7A16

10 chữ số thập phacircn từ 0 đến 9 coacute matilde từ 3016 đến 3916 (48 đến 57) lsquo0rsquo 1048774 0011 0000 = 3016 lsquo1rsquo 1048774 0011 0001 = 3116 lsquo9rsquo 1048774 0011 1001 = 3916

Bộ matilde hợp nhất Unicode

Do caacutec hatildeng maacutey tiacutenh hagraveng đầu thiết kế Bộ matilde 16-bit Bộ matilde đa ngocircn ngữ Coacute hỗ trợ caacutec kyacute tự tiếng Việt

Page 29: Kiến trúc máy tính

Biểu diễn số nguyecircn coacute dấu

Chuyển đổi từ byte thagravenh word Đối với số dương

+19 = 0001 0011 (8 bit) +19 = 0000 0000 0001 0011 (16 bit)thecircm 8 bit 0 becircn traacutei

Đối với số acircm - 19 = 1110 1101 (8 bit) - 19 = 1111 1111 1110 1101 (16 bit)thecircm 8 bit 1 becircn traacutei

Với n=32 bit biểu diễn từ -231 đến 231-1 Với n=64 bit biểu diễn từ -263 đến 263-1

Biểu diễn số nguyecircn theo matilde BCD Binary Coded Decimal Code Số BCD được dugraveng để tiacutenh toaacuten trecircn số thập phacircn

trong hệ nhị phacircn Số BCD lagrave số viết theo hệ 16 nhưng giaacute trị tiacutenh theo

hệ 10 Số 12BCD được viết trong hệ 2 lagrave 0001 0010 nhưng coacute giaacute

trị lagrave 12 thay vigrave 18 (1216= 1810) Dugraveng 4 bit để matilde hoaacute cho caacutec chữ số thập phacircn từ 0 đến 9

0 0000 3 0011 6 0110 9 10011 0001 4 0100 7 0111 2 0010 5 0101 8 1000

Coacute 6 tổ hợp khocircng sử dụng 1010 1011 1100 1101 1110 1111

Caacutec kiểu lưu trữ số BCD

BCD khocircng goacutei (Unpacked BCD) Mỗi số BCD 4-bit được lưu trữ trong 4-bit thấp

của mỗi byte Viacute dụ Số 35 được lưu trữ 2 byte

0011 0101

BCD goacutei (Packed BCD) Hai số BCD được lưu trữ trong 1 byte Viacute dụ số 35 được lưu trữ 1 byte

0 0 1 1 0 1 0 1

Thực hiện caacutec pheacutep toaacuten số học với số nguyecircn Pheacutep cộng Pheacutep đảo dấu

Pheacutep đảo dấu trong maacutey tiacutenh thực chất lagrave lấy bugrave 2 Pheacutep trừ Nhacircn số nguyecircn

khocircng dấu coacute dấu

Thuật toaacuten nhacircn nhanh Booth Chia số nguyecircn

khocircng dấu coacute dấu

Số dấu chấm động

Số chấm động (floating point) dugraveng để tiacutenh toaacuten trecircn số thực một số thực X được biểu diễn theo kiểu số dấu chấm động

như sauX = plusmn m Bplusmne

m lagrave phần định trị (Mantissa) B lagrave cơ số (base) e lagrave phần mũ (Exponent)

m (mantissa) quyết định độ chiacutenh xaacutec B (base) e (exponent) quyết định độ lớnnhỏ

Số dấu chấm động

Một giaacute trị coacute thể biểu diễn dưới nhiều dạng Khoacute xử lyacute Cần chuẩn hoacutea

Số chấm động theo chuẩn IEEE 754 Cơ số 2 Coacute 2 dạng

Chiacutenh xaacutec đơn 32 bit độ lệch mũ (bias) 127 Cocircng thức tiacutenh giaacute trị X = (-1)S x 1m x 2e-127

Chiacutenh xaacutec keacutep 64 bit độ lệch mũ (bias) 1023 Cocircng thức tiacutenh giaacute trị X = (-1)S x 1m x 2e-1023

Số chấm động theo chuẩn IEEE 754

Caacutec quy ước đặc biệt

Caacutec bit của e bằng 0 caacutec bit của m bằng 0 thigrave X= plusmn 0 x000 0000 0000 0000 0000 0000 0000 0000 X= plusmn 0

Caacutec bit của e bằng 1 caacutec bit của m bằng 0 thigrave X= plusmn infin x111 1111 1000 0000 0000 0000 0000 0000 1048774 X= plusmn infin

Caacutec bit của e bằng 1 cograven m coacute iacutet nhất 1 bit bằng 1 thigrave noacute khocircng biểu diễn cho số nagraveo cả (NaN ndash not a number)

Biểu diễn kyacute tự

Bộ matilde ASCII (American Standard Code for Information Interchange) Do ANSI (American National Standard Institute)

thiết kế Bộ matilde 8 bit coacute thể matilde hoacutea được 28 =256 kyacute tự

coacute matilde từ 0016 divide FF16 trong đoacute 128 kyacute tự chuẩn coacute matilde từ 0016 divide 7F16 128 kyacute tự mở rộng coacute matilde từ 8016 divide FF16

Bộ matilde Unicode

Bộ matilde ASCII Caacutec kyacute tự chuẩn

26 chữ caacutei hoa lsquoArsquo đến lsquoZrsquo coacute matilde từ 4116 đến 5A16 (65 đến 90) lsquoArsquo 1048774 0100 0001 = 4116 lsquoBrsquo 1048774 0100 0010 = 4216 lsquoZrsquo 1048774 0101 1010 = 5A16

26 chữ caacutei thường lsquoarsquo đến lsquozrsquo coacute matilde từ 6116 đến 7A16 (97 đến 122) lsquoarsquo 1048774 0110 0001 = 6116 lsquobrsquo 1048774 0110 0010 = 6216 lsquozrsquo 1048774 0111 1010 = 7A16

10 chữ số thập phacircn từ 0 đến 9 coacute matilde từ 3016 đến 3916 (48 đến 57) lsquo0rsquo 1048774 0011 0000 = 3016 lsquo1rsquo 1048774 0011 0001 = 3116 lsquo9rsquo 1048774 0011 1001 = 3916

Bộ matilde hợp nhất Unicode

Do caacutec hatildeng maacutey tiacutenh hagraveng đầu thiết kế Bộ matilde 16-bit Bộ matilde đa ngocircn ngữ Coacute hỗ trợ caacutec kyacute tự tiếng Việt

Page 30: Kiến trúc máy tính

Biểu diễn số nguyecircn theo matilde BCD Binary Coded Decimal Code Số BCD được dugraveng để tiacutenh toaacuten trecircn số thập phacircn

trong hệ nhị phacircn Số BCD lagrave số viết theo hệ 16 nhưng giaacute trị tiacutenh theo

hệ 10 Số 12BCD được viết trong hệ 2 lagrave 0001 0010 nhưng coacute giaacute

trị lagrave 12 thay vigrave 18 (1216= 1810) Dugraveng 4 bit để matilde hoaacute cho caacutec chữ số thập phacircn từ 0 đến 9

0 0000 3 0011 6 0110 9 10011 0001 4 0100 7 0111 2 0010 5 0101 8 1000

Coacute 6 tổ hợp khocircng sử dụng 1010 1011 1100 1101 1110 1111

Caacutec kiểu lưu trữ số BCD

BCD khocircng goacutei (Unpacked BCD) Mỗi số BCD 4-bit được lưu trữ trong 4-bit thấp

của mỗi byte Viacute dụ Số 35 được lưu trữ 2 byte

0011 0101

BCD goacutei (Packed BCD) Hai số BCD được lưu trữ trong 1 byte Viacute dụ số 35 được lưu trữ 1 byte

0 0 1 1 0 1 0 1

Thực hiện caacutec pheacutep toaacuten số học với số nguyecircn Pheacutep cộng Pheacutep đảo dấu

Pheacutep đảo dấu trong maacutey tiacutenh thực chất lagrave lấy bugrave 2 Pheacutep trừ Nhacircn số nguyecircn

khocircng dấu coacute dấu

Thuật toaacuten nhacircn nhanh Booth Chia số nguyecircn

khocircng dấu coacute dấu

Số dấu chấm động

Số chấm động (floating point) dugraveng để tiacutenh toaacuten trecircn số thực một số thực X được biểu diễn theo kiểu số dấu chấm động

như sauX = plusmn m Bplusmne

m lagrave phần định trị (Mantissa) B lagrave cơ số (base) e lagrave phần mũ (Exponent)

m (mantissa) quyết định độ chiacutenh xaacutec B (base) e (exponent) quyết định độ lớnnhỏ

Số dấu chấm động

Một giaacute trị coacute thể biểu diễn dưới nhiều dạng Khoacute xử lyacute Cần chuẩn hoacutea

Số chấm động theo chuẩn IEEE 754 Cơ số 2 Coacute 2 dạng

Chiacutenh xaacutec đơn 32 bit độ lệch mũ (bias) 127 Cocircng thức tiacutenh giaacute trị X = (-1)S x 1m x 2e-127

Chiacutenh xaacutec keacutep 64 bit độ lệch mũ (bias) 1023 Cocircng thức tiacutenh giaacute trị X = (-1)S x 1m x 2e-1023

Số chấm động theo chuẩn IEEE 754

Caacutec quy ước đặc biệt

Caacutec bit của e bằng 0 caacutec bit của m bằng 0 thigrave X= plusmn 0 x000 0000 0000 0000 0000 0000 0000 0000 X= plusmn 0

Caacutec bit của e bằng 1 caacutec bit của m bằng 0 thigrave X= plusmn infin x111 1111 1000 0000 0000 0000 0000 0000 1048774 X= plusmn infin

Caacutec bit của e bằng 1 cograven m coacute iacutet nhất 1 bit bằng 1 thigrave noacute khocircng biểu diễn cho số nagraveo cả (NaN ndash not a number)

Biểu diễn kyacute tự

Bộ matilde ASCII (American Standard Code for Information Interchange) Do ANSI (American National Standard Institute)

thiết kế Bộ matilde 8 bit coacute thể matilde hoacutea được 28 =256 kyacute tự

coacute matilde từ 0016 divide FF16 trong đoacute 128 kyacute tự chuẩn coacute matilde từ 0016 divide 7F16 128 kyacute tự mở rộng coacute matilde từ 8016 divide FF16

Bộ matilde Unicode

Bộ matilde ASCII Caacutec kyacute tự chuẩn

26 chữ caacutei hoa lsquoArsquo đến lsquoZrsquo coacute matilde từ 4116 đến 5A16 (65 đến 90) lsquoArsquo 1048774 0100 0001 = 4116 lsquoBrsquo 1048774 0100 0010 = 4216 lsquoZrsquo 1048774 0101 1010 = 5A16

26 chữ caacutei thường lsquoarsquo đến lsquozrsquo coacute matilde từ 6116 đến 7A16 (97 đến 122) lsquoarsquo 1048774 0110 0001 = 6116 lsquobrsquo 1048774 0110 0010 = 6216 lsquozrsquo 1048774 0111 1010 = 7A16

10 chữ số thập phacircn từ 0 đến 9 coacute matilde từ 3016 đến 3916 (48 đến 57) lsquo0rsquo 1048774 0011 0000 = 3016 lsquo1rsquo 1048774 0011 0001 = 3116 lsquo9rsquo 1048774 0011 1001 = 3916

Bộ matilde hợp nhất Unicode

Do caacutec hatildeng maacutey tiacutenh hagraveng đầu thiết kế Bộ matilde 16-bit Bộ matilde đa ngocircn ngữ Coacute hỗ trợ caacutec kyacute tự tiếng Việt

Page 31: Kiến trúc máy tính

Caacutec kiểu lưu trữ số BCD

BCD khocircng goacutei (Unpacked BCD) Mỗi số BCD 4-bit được lưu trữ trong 4-bit thấp

của mỗi byte Viacute dụ Số 35 được lưu trữ 2 byte

0011 0101

BCD goacutei (Packed BCD) Hai số BCD được lưu trữ trong 1 byte Viacute dụ số 35 được lưu trữ 1 byte

0 0 1 1 0 1 0 1

Thực hiện caacutec pheacutep toaacuten số học với số nguyecircn Pheacutep cộng Pheacutep đảo dấu

Pheacutep đảo dấu trong maacutey tiacutenh thực chất lagrave lấy bugrave 2 Pheacutep trừ Nhacircn số nguyecircn

khocircng dấu coacute dấu

Thuật toaacuten nhacircn nhanh Booth Chia số nguyecircn

khocircng dấu coacute dấu

Số dấu chấm động

Số chấm động (floating point) dugraveng để tiacutenh toaacuten trecircn số thực một số thực X được biểu diễn theo kiểu số dấu chấm động

như sauX = plusmn m Bplusmne

m lagrave phần định trị (Mantissa) B lagrave cơ số (base) e lagrave phần mũ (Exponent)

m (mantissa) quyết định độ chiacutenh xaacutec B (base) e (exponent) quyết định độ lớnnhỏ

Số dấu chấm động

Một giaacute trị coacute thể biểu diễn dưới nhiều dạng Khoacute xử lyacute Cần chuẩn hoacutea

Số chấm động theo chuẩn IEEE 754 Cơ số 2 Coacute 2 dạng

Chiacutenh xaacutec đơn 32 bit độ lệch mũ (bias) 127 Cocircng thức tiacutenh giaacute trị X = (-1)S x 1m x 2e-127

Chiacutenh xaacutec keacutep 64 bit độ lệch mũ (bias) 1023 Cocircng thức tiacutenh giaacute trị X = (-1)S x 1m x 2e-1023

Số chấm động theo chuẩn IEEE 754

Caacutec quy ước đặc biệt

Caacutec bit của e bằng 0 caacutec bit của m bằng 0 thigrave X= plusmn 0 x000 0000 0000 0000 0000 0000 0000 0000 X= plusmn 0

Caacutec bit của e bằng 1 caacutec bit của m bằng 0 thigrave X= plusmn infin x111 1111 1000 0000 0000 0000 0000 0000 1048774 X= plusmn infin

Caacutec bit của e bằng 1 cograven m coacute iacutet nhất 1 bit bằng 1 thigrave noacute khocircng biểu diễn cho số nagraveo cả (NaN ndash not a number)

Biểu diễn kyacute tự

Bộ matilde ASCII (American Standard Code for Information Interchange) Do ANSI (American National Standard Institute)

thiết kế Bộ matilde 8 bit coacute thể matilde hoacutea được 28 =256 kyacute tự

coacute matilde từ 0016 divide FF16 trong đoacute 128 kyacute tự chuẩn coacute matilde từ 0016 divide 7F16 128 kyacute tự mở rộng coacute matilde từ 8016 divide FF16

Bộ matilde Unicode

Bộ matilde ASCII Caacutec kyacute tự chuẩn

26 chữ caacutei hoa lsquoArsquo đến lsquoZrsquo coacute matilde từ 4116 đến 5A16 (65 đến 90) lsquoArsquo 1048774 0100 0001 = 4116 lsquoBrsquo 1048774 0100 0010 = 4216 lsquoZrsquo 1048774 0101 1010 = 5A16

26 chữ caacutei thường lsquoarsquo đến lsquozrsquo coacute matilde từ 6116 đến 7A16 (97 đến 122) lsquoarsquo 1048774 0110 0001 = 6116 lsquobrsquo 1048774 0110 0010 = 6216 lsquozrsquo 1048774 0111 1010 = 7A16

10 chữ số thập phacircn từ 0 đến 9 coacute matilde từ 3016 đến 3916 (48 đến 57) lsquo0rsquo 1048774 0011 0000 = 3016 lsquo1rsquo 1048774 0011 0001 = 3116 lsquo9rsquo 1048774 0011 1001 = 3916

Bộ matilde hợp nhất Unicode

Do caacutec hatildeng maacutey tiacutenh hagraveng đầu thiết kế Bộ matilde 16-bit Bộ matilde đa ngocircn ngữ Coacute hỗ trợ caacutec kyacute tự tiếng Việt

Page 32: Kiến trúc máy tính

Thực hiện caacutec pheacutep toaacuten số học với số nguyecircn Pheacutep cộng Pheacutep đảo dấu

Pheacutep đảo dấu trong maacutey tiacutenh thực chất lagrave lấy bugrave 2 Pheacutep trừ Nhacircn số nguyecircn

khocircng dấu coacute dấu

Thuật toaacuten nhacircn nhanh Booth Chia số nguyecircn

khocircng dấu coacute dấu

Số dấu chấm động

Số chấm động (floating point) dugraveng để tiacutenh toaacuten trecircn số thực một số thực X được biểu diễn theo kiểu số dấu chấm động

như sauX = plusmn m Bplusmne

m lagrave phần định trị (Mantissa) B lagrave cơ số (base) e lagrave phần mũ (Exponent)

m (mantissa) quyết định độ chiacutenh xaacutec B (base) e (exponent) quyết định độ lớnnhỏ

Số dấu chấm động

Một giaacute trị coacute thể biểu diễn dưới nhiều dạng Khoacute xử lyacute Cần chuẩn hoacutea

Số chấm động theo chuẩn IEEE 754 Cơ số 2 Coacute 2 dạng

Chiacutenh xaacutec đơn 32 bit độ lệch mũ (bias) 127 Cocircng thức tiacutenh giaacute trị X = (-1)S x 1m x 2e-127

Chiacutenh xaacutec keacutep 64 bit độ lệch mũ (bias) 1023 Cocircng thức tiacutenh giaacute trị X = (-1)S x 1m x 2e-1023

Số chấm động theo chuẩn IEEE 754

Caacutec quy ước đặc biệt

Caacutec bit của e bằng 0 caacutec bit của m bằng 0 thigrave X= plusmn 0 x000 0000 0000 0000 0000 0000 0000 0000 X= plusmn 0

Caacutec bit của e bằng 1 caacutec bit của m bằng 0 thigrave X= plusmn infin x111 1111 1000 0000 0000 0000 0000 0000 1048774 X= plusmn infin

Caacutec bit của e bằng 1 cograven m coacute iacutet nhất 1 bit bằng 1 thigrave noacute khocircng biểu diễn cho số nagraveo cả (NaN ndash not a number)

Biểu diễn kyacute tự

Bộ matilde ASCII (American Standard Code for Information Interchange) Do ANSI (American National Standard Institute)

thiết kế Bộ matilde 8 bit coacute thể matilde hoacutea được 28 =256 kyacute tự

coacute matilde từ 0016 divide FF16 trong đoacute 128 kyacute tự chuẩn coacute matilde từ 0016 divide 7F16 128 kyacute tự mở rộng coacute matilde từ 8016 divide FF16

Bộ matilde Unicode

Bộ matilde ASCII Caacutec kyacute tự chuẩn

26 chữ caacutei hoa lsquoArsquo đến lsquoZrsquo coacute matilde từ 4116 đến 5A16 (65 đến 90) lsquoArsquo 1048774 0100 0001 = 4116 lsquoBrsquo 1048774 0100 0010 = 4216 lsquoZrsquo 1048774 0101 1010 = 5A16

26 chữ caacutei thường lsquoarsquo đến lsquozrsquo coacute matilde từ 6116 đến 7A16 (97 đến 122) lsquoarsquo 1048774 0110 0001 = 6116 lsquobrsquo 1048774 0110 0010 = 6216 lsquozrsquo 1048774 0111 1010 = 7A16

10 chữ số thập phacircn từ 0 đến 9 coacute matilde từ 3016 đến 3916 (48 đến 57) lsquo0rsquo 1048774 0011 0000 = 3016 lsquo1rsquo 1048774 0011 0001 = 3116 lsquo9rsquo 1048774 0011 1001 = 3916

Bộ matilde hợp nhất Unicode

Do caacutec hatildeng maacutey tiacutenh hagraveng đầu thiết kế Bộ matilde 16-bit Bộ matilde đa ngocircn ngữ Coacute hỗ trợ caacutec kyacute tự tiếng Việt

Page 33: Kiến trúc máy tính

Số dấu chấm động

Số chấm động (floating point) dugraveng để tiacutenh toaacuten trecircn số thực một số thực X được biểu diễn theo kiểu số dấu chấm động

như sauX = plusmn m Bplusmne

m lagrave phần định trị (Mantissa) B lagrave cơ số (base) e lagrave phần mũ (Exponent)

m (mantissa) quyết định độ chiacutenh xaacutec B (base) e (exponent) quyết định độ lớnnhỏ

Số dấu chấm động

Một giaacute trị coacute thể biểu diễn dưới nhiều dạng Khoacute xử lyacute Cần chuẩn hoacutea

Số chấm động theo chuẩn IEEE 754 Cơ số 2 Coacute 2 dạng

Chiacutenh xaacutec đơn 32 bit độ lệch mũ (bias) 127 Cocircng thức tiacutenh giaacute trị X = (-1)S x 1m x 2e-127

Chiacutenh xaacutec keacutep 64 bit độ lệch mũ (bias) 1023 Cocircng thức tiacutenh giaacute trị X = (-1)S x 1m x 2e-1023

Số chấm động theo chuẩn IEEE 754

Caacutec quy ước đặc biệt

Caacutec bit của e bằng 0 caacutec bit của m bằng 0 thigrave X= plusmn 0 x000 0000 0000 0000 0000 0000 0000 0000 X= plusmn 0

Caacutec bit của e bằng 1 caacutec bit của m bằng 0 thigrave X= plusmn infin x111 1111 1000 0000 0000 0000 0000 0000 1048774 X= plusmn infin

Caacutec bit của e bằng 1 cograven m coacute iacutet nhất 1 bit bằng 1 thigrave noacute khocircng biểu diễn cho số nagraveo cả (NaN ndash not a number)

Biểu diễn kyacute tự

Bộ matilde ASCII (American Standard Code for Information Interchange) Do ANSI (American National Standard Institute)

thiết kế Bộ matilde 8 bit coacute thể matilde hoacutea được 28 =256 kyacute tự

coacute matilde từ 0016 divide FF16 trong đoacute 128 kyacute tự chuẩn coacute matilde từ 0016 divide 7F16 128 kyacute tự mở rộng coacute matilde từ 8016 divide FF16

Bộ matilde Unicode

Bộ matilde ASCII Caacutec kyacute tự chuẩn

26 chữ caacutei hoa lsquoArsquo đến lsquoZrsquo coacute matilde từ 4116 đến 5A16 (65 đến 90) lsquoArsquo 1048774 0100 0001 = 4116 lsquoBrsquo 1048774 0100 0010 = 4216 lsquoZrsquo 1048774 0101 1010 = 5A16

26 chữ caacutei thường lsquoarsquo đến lsquozrsquo coacute matilde từ 6116 đến 7A16 (97 đến 122) lsquoarsquo 1048774 0110 0001 = 6116 lsquobrsquo 1048774 0110 0010 = 6216 lsquozrsquo 1048774 0111 1010 = 7A16

10 chữ số thập phacircn từ 0 đến 9 coacute matilde từ 3016 đến 3916 (48 đến 57) lsquo0rsquo 1048774 0011 0000 = 3016 lsquo1rsquo 1048774 0011 0001 = 3116 lsquo9rsquo 1048774 0011 1001 = 3916

Bộ matilde hợp nhất Unicode

Do caacutec hatildeng maacutey tiacutenh hagraveng đầu thiết kế Bộ matilde 16-bit Bộ matilde đa ngocircn ngữ Coacute hỗ trợ caacutec kyacute tự tiếng Việt

Page 34: Kiến trúc máy tính

Số dấu chấm động

Một giaacute trị coacute thể biểu diễn dưới nhiều dạng Khoacute xử lyacute Cần chuẩn hoacutea

Số chấm động theo chuẩn IEEE 754 Cơ số 2 Coacute 2 dạng

Chiacutenh xaacutec đơn 32 bit độ lệch mũ (bias) 127 Cocircng thức tiacutenh giaacute trị X = (-1)S x 1m x 2e-127

Chiacutenh xaacutec keacutep 64 bit độ lệch mũ (bias) 1023 Cocircng thức tiacutenh giaacute trị X = (-1)S x 1m x 2e-1023

Số chấm động theo chuẩn IEEE 754

Caacutec quy ước đặc biệt

Caacutec bit của e bằng 0 caacutec bit của m bằng 0 thigrave X= plusmn 0 x000 0000 0000 0000 0000 0000 0000 0000 X= plusmn 0

Caacutec bit của e bằng 1 caacutec bit của m bằng 0 thigrave X= plusmn infin x111 1111 1000 0000 0000 0000 0000 0000 1048774 X= plusmn infin

Caacutec bit của e bằng 1 cograven m coacute iacutet nhất 1 bit bằng 1 thigrave noacute khocircng biểu diễn cho số nagraveo cả (NaN ndash not a number)

Biểu diễn kyacute tự

Bộ matilde ASCII (American Standard Code for Information Interchange) Do ANSI (American National Standard Institute)

thiết kế Bộ matilde 8 bit coacute thể matilde hoacutea được 28 =256 kyacute tự

coacute matilde từ 0016 divide FF16 trong đoacute 128 kyacute tự chuẩn coacute matilde từ 0016 divide 7F16 128 kyacute tự mở rộng coacute matilde từ 8016 divide FF16

Bộ matilde Unicode

Bộ matilde ASCII Caacutec kyacute tự chuẩn

26 chữ caacutei hoa lsquoArsquo đến lsquoZrsquo coacute matilde từ 4116 đến 5A16 (65 đến 90) lsquoArsquo 1048774 0100 0001 = 4116 lsquoBrsquo 1048774 0100 0010 = 4216 lsquoZrsquo 1048774 0101 1010 = 5A16

26 chữ caacutei thường lsquoarsquo đến lsquozrsquo coacute matilde từ 6116 đến 7A16 (97 đến 122) lsquoarsquo 1048774 0110 0001 = 6116 lsquobrsquo 1048774 0110 0010 = 6216 lsquozrsquo 1048774 0111 1010 = 7A16

10 chữ số thập phacircn từ 0 đến 9 coacute matilde từ 3016 đến 3916 (48 đến 57) lsquo0rsquo 1048774 0011 0000 = 3016 lsquo1rsquo 1048774 0011 0001 = 3116 lsquo9rsquo 1048774 0011 1001 = 3916

Bộ matilde hợp nhất Unicode

Do caacutec hatildeng maacutey tiacutenh hagraveng đầu thiết kế Bộ matilde 16-bit Bộ matilde đa ngocircn ngữ Coacute hỗ trợ caacutec kyacute tự tiếng Việt

Page 35: Kiến trúc máy tính

Số chấm động theo chuẩn IEEE 754 Cơ số 2 Coacute 2 dạng

Chiacutenh xaacutec đơn 32 bit độ lệch mũ (bias) 127 Cocircng thức tiacutenh giaacute trị X = (-1)S x 1m x 2e-127

Chiacutenh xaacutec keacutep 64 bit độ lệch mũ (bias) 1023 Cocircng thức tiacutenh giaacute trị X = (-1)S x 1m x 2e-1023

Số chấm động theo chuẩn IEEE 754

Caacutec quy ước đặc biệt

Caacutec bit của e bằng 0 caacutec bit của m bằng 0 thigrave X= plusmn 0 x000 0000 0000 0000 0000 0000 0000 0000 X= plusmn 0

Caacutec bit của e bằng 1 caacutec bit của m bằng 0 thigrave X= plusmn infin x111 1111 1000 0000 0000 0000 0000 0000 1048774 X= plusmn infin

Caacutec bit của e bằng 1 cograven m coacute iacutet nhất 1 bit bằng 1 thigrave noacute khocircng biểu diễn cho số nagraveo cả (NaN ndash not a number)

Biểu diễn kyacute tự

Bộ matilde ASCII (American Standard Code for Information Interchange) Do ANSI (American National Standard Institute)

thiết kế Bộ matilde 8 bit coacute thể matilde hoacutea được 28 =256 kyacute tự

coacute matilde từ 0016 divide FF16 trong đoacute 128 kyacute tự chuẩn coacute matilde từ 0016 divide 7F16 128 kyacute tự mở rộng coacute matilde từ 8016 divide FF16

Bộ matilde Unicode

Bộ matilde ASCII Caacutec kyacute tự chuẩn

26 chữ caacutei hoa lsquoArsquo đến lsquoZrsquo coacute matilde từ 4116 đến 5A16 (65 đến 90) lsquoArsquo 1048774 0100 0001 = 4116 lsquoBrsquo 1048774 0100 0010 = 4216 lsquoZrsquo 1048774 0101 1010 = 5A16

26 chữ caacutei thường lsquoarsquo đến lsquozrsquo coacute matilde từ 6116 đến 7A16 (97 đến 122) lsquoarsquo 1048774 0110 0001 = 6116 lsquobrsquo 1048774 0110 0010 = 6216 lsquozrsquo 1048774 0111 1010 = 7A16

10 chữ số thập phacircn từ 0 đến 9 coacute matilde từ 3016 đến 3916 (48 đến 57) lsquo0rsquo 1048774 0011 0000 = 3016 lsquo1rsquo 1048774 0011 0001 = 3116 lsquo9rsquo 1048774 0011 1001 = 3916

Bộ matilde hợp nhất Unicode

Do caacutec hatildeng maacutey tiacutenh hagraveng đầu thiết kế Bộ matilde 16-bit Bộ matilde đa ngocircn ngữ Coacute hỗ trợ caacutec kyacute tự tiếng Việt

Page 36: Kiến trúc máy tính

Số chấm động theo chuẩn IEEE 754

Caacutec quy ước đặc biệt

Caacutec bit của e bằng 0 caacutec bit của m bằng 0 thigrave X= plusmn 0 x000 0000 0000 0000 0000 0000 0000 0000 X= plusmn 0

Caacutec bit của e bằng 1 caacutec bit của m bằng 0 thigrave X= plusmn infin x111 1111 1000 0000 0000 0000 0000 0000 1048774 X= plusmn infin

Caacutec bit của e bằng 1 cograven m coacute iacutet nhất 1 bit bằng 1 thigrave noacute khocircng biểu diễn cho số nagraveo cả (NaN ndash not a number)

Biểu diễn kyacute tự

Bộ matilde ASCII (American Standard Code for Information Interchange) Do ANSI (American National Standard Institute)

thiết kế Bộ matilde 8 bit coacute thể matilde hoacutea được 28 =256 kyacute tự

coacute matilde từ 0016 divide FF16 trong đoacute 128 kyacute tự chuẩn coacute matilde từ 0016 divide 7F16 128 kyacute tự mở rộng coacute matilde từ 8016 divide FF16

Bộ matilde Unicode

Bộ matilde ASCII Caacutec kyacute tự chuẩn

26 chữ caacutei hoa lsquoArsquo đến lsquoZrsquo coacute matilde từ 4116 đến 5A16 (65 đến 90) lsquoArsquo 1048774 0100 0001 = 4116 lsquoBrsquo 1048774 0100 0010 = 4216 lsquoZrsquo 1048774 0101 1010 = 5A16

26 chữ caacutei thường lsquoarsquo đến lsquozrsquo coacute matilde từ 6116 đến 7A16 (97 đến 122) lsquoarsquo 1048774 0110 0001 = 6116 lsquobrsquo 1048774 0110 0010 = 6216 lsquozrsquo 1048774 0111 1010 = 7A16

10 chữ số thập phacircn từ 0 đến 9 coacute matilde từ 3016 đến 3916 (48 đến 57) lsquo0rsquo 1048774 0011 0000 = 3016 lsquo1rsquo 1048774 0011 0001 = 3116 lsquo9rsquo 1048774 0011 1001 = 3916

Bộ matilde hợp nhất Unicode

Do caacutec hatildeng maacutey tiacutenh hagraveng đầu thiết kế Bộ matilde 16-bit Bộ matilde đa ngocircn ngữ Coacute hỗ trợ caacutec kyacute tự tiếng Việt

Page 37: Kiến trúc máy tính

Caacutec quy ước đặc biệt

Caacutec bit của e bằng 0 caacutec bit của m bằng 0 thigrave X= plusmn 0 x000 0000 0000 0000 0000 0000 0000 0000 X= plusmn 0

Caacutec bit của e bằng 1 caacutec bit của m bằng 0 thigrave X= plusmn infin x111 1111 1000 0000 0000 0000 0000 0000 1048774 X= plusmn infin

Caacutec bit của e bằng 1 cograven m coacute iacutet nhất 1 bit bằng 1 thigrave noacute khocircng biểu diễn cho số nagraveo cả (NaN ndash not a number)

Biểu diễn kyacute tự

Bộ matilde ASCII (American Standard Code for Information Interchange) Do ANSI (American National Standard Institute)

thiết kế Bộ matilde 8 bit coacute thể matilde hoacutea được 28 =256 kyacute tự

coacute matilde từ 0016 divide FF16 trong đoacute 128 kyacute tự chuẩn coacute matilde từ 0016 divide 7F16 128 kyacute tự mở rộng coacute matilde từ 8016 divide FF16

Bộ matilde Unicode

Bộ matilde ASCII Caacutec kyacute tự chuẩn

26 chữ caacutei hoa lsquoArsquo đến lsquoZrsquo coacute matilde từ 4116 đến 5A16 (65 đến 90) lsquoArsquo 1048774 0100 0001 = 4116 lsquoBrsquo 1048774 0100 0010 = 4216 lsquoZrsquo 1048774 0101 1010 = 5A16

26 chữ caacutei thường lsquoarsquo đến lsquozrsquo coacute matilde từ 6116 đến 7A16 (97 đến 122) lsquoarsquo 1048774 0110 0001 = 6116 lsquobrsquo 1048774 0110 0010 = 6216 lsquozrsquo 1048774 0111 1010 = 7A16

10 chữ số thập phacircn từ 0 đến 9 coacute matilde từ 3016 đến 3916 (48 đến 57) lsquo0rsquo 1048774 0011 0000 = 3016 lsquo1rsquo 1048774 0011 0001 = 3116 lsquo9rsquo 1048774 0011 1001 = 3916

Bộ matilde hợp nhất Unicode

Do caacutec hatildeng maacutey tiacutenh hagraveng đầu thiết kế Bộ matilde 16-bit Bộ matilde đa ngocircn ngữ Coacute hỗ trợ caacutec kyacute tự tiếng Việt

Page 38: Kiến trúc máy tính

Biểu diễn kyacute tự

Bộ matilde ASCII (American Standard Code for Information Interchange) Do ANSI (American National Standard Institute)

thiết kế Bộ matilde 8 bit coacute thể matilde hoacutea được 28 =256 kyacute tự

coacute matilde từ 0016 divide FF16 trong đoacute 128 kyacute tự chuẩn coacute matilde từ 0016 divide 7F16 128 kyacute tự mở rộng coacute matilde từ 8016 divide FF16

Bộ matilde Unicode

Bộ matilde ASCII Caacutec kyacute tự chuẩn

26 chữ caacutei hoa lsquoArsquo đến lsquoZrsquo coacute matilde từ 4116 đến 5A16 (65 đến 90) lsquoArsquo 1048774 0100 0001 = 4116 lsquoBrsquo 1048774 0100 0010 = 4216 lsquoZrsquo 1048774 0101 1010 = 5A16

26 chữ caacutei thường lsquoarsquo đến lsquozrsquo coacute matilde từ 6116 đến 7A16 (97 đến 122) lsquoarsquo 1048774 0110 0001 = 6116 lsquobrsquo 1048774 0110 0010 = 6216 lsquozrsquo 1048774 0111 1010 = 7A16

10 chữ số thập phacircn từ 0 đến 9 coacute matilde từ 3016 đến 3916 (48 đến 57) lsquo0rsquo 1048774 0011 0000 = 3016 lsquo1rsquo 1048774 0011 0001 = 3116 lsquo9rsquo 1048774 0011 1001 = 3916

Bộ matilde hợp nhất Unicode

Do caacutec hatildeng maacutey tiacutenh hagraveng đầu thiết kế Bộ matilde 16-bit Bộ matilde đa ngocircn ngữ Coacute hỗ trợ caacutec kyacute tự tiếng Việt

Page 39: Kiến trúc máy tính

Bộ matilde ASCII Caacutec kyacute tự chuẩn

26 chữ caacutei hoa lsquoArsquo đến lsquoZrsquo coacute matilde từ 4116 đến 5A16 (65 đến 90) lsquoArsquo 1048774 0100 0001 = 4116 lsquoBrsquo 1048774 0100 0010 = 4216 lsquoZrsquo 1048774 0101 1010 = 5A16

26 chữ caacutei thường lsquoarsquo đến lsquozrsquo coacute matilde từ 6116 đến 7A16 (97 đến 122) lsquoarsquo 1048774 0110 0001 = 6116 lsquobrsquo 1048774 0110 0010 = 6216 lsquozrsquo 1048774 0111 1010 = 7A16

10 chữ số thập phacircn từ 0 đến 9 coacute matilde từ 3016 đến 3916 (48 đến 57) lsquo0rsquo 1048774 0011 0000 = 3016 lsquo1rsquo 1048774 0011 0001 = 3116 lsquo9rsquo 1048774 0011 1001 = 3916

Bộ matilde hợp nhất Unicode

Do caacutec hatildeng maacutey tiacutenh hagraveng đầu thiết kế Bộ matilde 16-bit Bộ matilde đa ngocircn ngữ Coacute hỗ trợ caacutec kyacute tự tiếng Việt

Page 40: Kiến trúc máy tính

Bộ matilde hợp nhất Unicode

Do caacutec hatildeng maacutey tiacutenh hagraveng đầu thiết kế Bộ matilde 16-bit Bộ matilde đa ngocircn ngữ Coacute hỗ trợ caacutec kyacute tự tiếng Việt