Kiến trúc máy tính
description
Transcript of 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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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