3. chapter 3_Bieu dien du lieu

Download Report

Transcript 3. chapter 3_Bieu dien du lieu

CHƯƠNG 3
BIỂU DIỄN DỮ LIỆU TRÊN MÁY TÍNH
Nội dung chương 3
3.1. Các hệ đếm cơ bản
3.2. Mã hoá và lưu trữ dữ liệu trong máy
tính
3.3. Biểu diễn số nguyên
3.4. Thực hiện các phép toán số học với
số nguyên
3.5. Số dấu chấm động
3.6. Biểu diễn ký tự
3.1. Các hệ đếm cơ bản
- Hệ thập phân (Decimal System)
Con người sử dụng
- Hệ nhị phân (Binary System)
 Máy tính sử dụng
- Hệ mười sáu (Hexadecimal System)
Dùng để viết gọn số nhị phân
3.1.1. Hệ thập phân
- Cơ số 10
10 chữ số: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
- Dùng n chữ số thập phân có thể biểu diễn
được 10n giá trị khác nhau:
00...000 = 0
99...999 = 10n – 1
-
Ví dụ số thập phân
472.38 = 4x102 + 7x101 + 2x100 + 3x10-1 + 8x10-2
+ Các chữ số của phần nguyên:
472 : 10 = 47 dư 2
47 : 10 = 4 dư 7
4 : 10 = 0 dư 4
+ Các chữ số của phần lẻ:
0.38 x 10 = 3.8 phần nguyên = 3
0.8 x 10 = 8.0 phần nguyên = 8
3.1.2. Hệ nhị phân
- Cơ số 2
- 2 chữ số nhị phân: 0 và 1
- Chữ số nhị phân gọi là bit (binary digit)
- Bit là đơn vị thông tin nhỏ nhất
- Dùng n bit có thể biểu diễn được 2n giá trị khác
nhau:
00...000 = 0
11...111 = 2n-1
Dạng tổng quát của số nhị phân
- Có một số nhị phân A như sau:
A = anan-1...a1a0.a-1...a-m
- Giá trị của A được tính như sau:
A = an2n + an-12n-1 +...+ a020 + a-12-1 +...+ a-m2-m
A
n
a *2
i  m
i
i
Ví dụ số nhị phân
1101001.1011(2)
6 5 4 3 2 1 0 -1 -2 -3 -4
= 26 + 25 + 23 + 20 + 2-1 + 2-3 + 2-4
= 64 + 32 + 8 + 1 + 0.5 + 0.125 + 0.0625
= 105.6875(10)
Chuyển đổi số nguyên thập phân sang nhị phân
- Phương pháp 1: chia dần cho 2 rồi lấy phần dư
- Phương pháp 2: phân tích thành tổng của các số 2i
nhanh hơn
Phương pháp chia dần cho 2
- Ví dụ: chuyển đổi 105(10)
105:2 = 52 dư 1
52:2 = 26 dư 0
26:2 = 13 dư 0
13:2 = 6 dư 1
6:2 = 3 dư 0
3:2 = 1 dư 1
1:2 = 0 dư 1
Kết quả: 105(10) = 1101001(2)
Phương pháp phân tích thành tổng của các 2i
- Ví dụ 1: chuyển đổi 105(10)
105 = 64 + 32 + 8 + 1 = 26 + 25 + 23 + 20
27
-
26
25
24
23
22
21
20
128 64
0
1
32
1
16
0
8
1
4
0
2
0
1
1
Kết quả: 105(10) = 0110 1001(2)
Ví dụ 2: 17000(10) = 16384 + 512 + 64 + 32 + 8
= 214 + 29 + 26 + 25 + 23
0 1 0 0
15 14 13 12
0
11
0
10
1
9
0 0 1 1 0
8 7 6 5 4
1 0 0 0
3 2 1 0
Chuyển số lẻ thập phân sang nhị phân
-
Ví dụ 1: chuyển đổi 0.6875(10)
0.6875 x 2 = 1.375 phần nguyên = 1
0.375 x 2 = 0.75 phần nguyên = 0
0.75 x 2 = 1.5 phần nguyên = 1
0.5 x 2 = 1.0 phần nguyên = 1
Kết quả: 0.6875(10)=0.1011(2)
Các phép tính
Phép cộng
1+0=1
0+1=1
0+0=0
1+1=10 viãút 0 nhåï 1 sang cäüt tiãúp theo
Vê duû:
1001100110
1011
1001110001
Phép trừ
1- 0=1
10-1=1
0- 0=0
1-1=0
0-1=Phải mượn 1 bit kế tiếp
Ví dụ:
111001110
110011
110011011
Phép nhân
1* 0=0
1*1=1
0*0=0
0*1=0
Ví dụ:
1111
110
11110
1111
1011010
Phép chia
0/1 =0
1/1=1
1/0=Không xác định
Ví dụ:
1111
001
0011
11
101
3.1.3. Hệ mười sáu (Hexa)
- Cơ số 16
- 16 chữ số: 0,1,2,3,4,5,6,7,8,9, A,B,C,D,E,F
- Dùng để viết gọn cho số nhị phân: cứ một
nhóm 4 bit sẽ được thay thế bằng 1 chữ số
Hexa
- Ví dụ chuyển đổi số nhị phân  số Hexa:
0000 00002 = 0016
1011 00112 = B316
0010 1101 1001 10102 = 2D9A16
1111 1111 1111 11112 = FFFF16
3.1.4 Đơn vị đo thông tin
Bit (Binary Digit): Số nhị phân 0 hoặc 1
Byte
B
= 8 Bit
KiloByte
KB
= 210B
=1024B
MegaByte
MB
= 210KB
GigaByte
GB
= 210MB
TeraByte
TB
= 210GB
PetaByte
PB
= 210TB
ExaByte
EB
= 210PB
3.2. Mã hoá và lưu trữ dữ liệu trong máy tính
3.2.1 Nguyên tắc chung về mã hoá dữ liệu
- Mọi dữ liệu đưa vào máy tính đều được mã hoá
thành số nhị phân
- Các loại dữ liệu
+ Dữ liệu nhân tạo: do con người quy ước
+ Dữ liệu tự nhiên: tồn tại khách quan với
con người
Mã hoá dữ liệu nhân tạo
- Dữ liệu số nguyên: mã hoá theo một số chuẩn
qui ước
- Dữ liệu số thực: mã hoá bằng số dấu chấm
động
- Dữ liệu ký tự: mã hoá theo bộ mã ký tự
Mã hóa và tái tạo tín hiệu vật lý
- Các dữ liệu vật lý thông dụng:
+ Âm thanh
+ Hình ảnh
Độ dài từ dữ liệu (word)
- Độ dài từ dữ liệu là số bit được sử dụng để mã
hoá loại dữ liệu tương ứng
- Thường là bội của 8 bit
- VD: 8, 16, 32, 64 bit
3.2.2. Thứ tự lưu trữ các byte của dữ liệu
- Bộ nhớ chính thường được tổ chức theo byte
- Độ dài từ dữ liệu có thể chiếm từ một đến nhiều
byte
 cần phải biết thứ tự lưu trữ các byte trong bộ
nhớ chính với các dữ liệu nhiều byte.
- Có 2 cách lưu trữ:
+ Lưu trữ đầu nhỏ (Little-endian): Byte thấp được
lưu trữ ở ngăn nhớ có địa chỉ nhỏ hơn, byte cao
được lưu trữ ở ngăn nhớ có địa chỉ lớn hơn.
+ Lưu trữ đầu to (Big-endian): Byte cao được lưu
trữ ở ngăn nhớ có địa chỉ nhỏ hơn, byte thấp
được lưu trữ ở ngăn nhớ có địa chỉ lớn hơn.
Ví dụ lưu trữ dữ liệu 32-bit
Lưu trữ của các bộ xử lý điển hình
- Intel 80x86 và các Pentium:
 Little-endian
- Motorola 680x0 và các bộ xử lý RISC:
 Big-endian
- Power PC và Itanium: cả hai
3.3. Biểu diễn số nguyên
- Có hai loại số nguyên:
+ Số nguyên không dấu (Unsigned Integer)
+ Số nguyên có dấu (Signed Integer)
3.3.1. Biểu diễn số nguyên không dấu
- Nguyên tắc tổng quát:
+ Dùng n bit biểu diễn số nguyên không dấu A:
an-1an-2…..a2a1a0
+ Giá trị của A được tính như sau:
n -1
A   ai * 2
i
i 0
+ Dãy biểu diễn của A: từ 0 đến 2n-1
Các ví dụ
- Ví dụ 1: Biểu diễn các số nguyên không dấu sau
đây bằng 8-bit:
A=41 ; B=150
Giải:
A = 41 = 32 + 8 + 1 = 25 + 23 + 20
41 = 0010 1001
B = 150 = 128 + 16 + 4 + 2 = 27+24+22+21
150 = 1001 0110
Ví dụ 2:
- Cho các số nguyên không dấu M, N được biểu
diễn bằng 8-bit như sau:
M = 0001 0010
N = 1011 1001
Xác định giá trị của chúng?
- Giải:
M = 0001 0010 = 24 + 21 = 16 + 2 = 18
N = 1011 1001 = 27 + 25 + 24 + 23 + 20
= 128 + 32 + 16 + 8 + 1 = 185
Với n = 8 bit
- Biểu diễn được các giá trị từ 0 đến 255
0000 0000 = 0
0000 0001 = 1
0000 0010 = 2
0000 0011 = 3 …
Chú ý:
1111 1111
+ 0000 0001
1 0000 0000
 Vậy: 255 + 1 = 0?
1111 1111 = 255  do tràn nhớ ra ngoài
Với n = 16 bit, 32 bit, 64 bit
n = 16 bit: dải biểu diễn từ 0 đến 65535 (216-1)
0000 0000 0000 0000 = 0
…
0000 0000 1111 1111 = 255
0000 0001 0000 0000 = 256
…
1111 1111 1111 1111 = 65535
n= 32 bit: dãy biểu diễn từ 0 đến 232-1
n= 64 bit: dãy biểu diễn từ 0 đến 264-1
3.3.2. Biểu diễn số nguyên có dấu
a. Số bù một và Số bù hai:
Giả sử A là một số nhị phân, ta có:
+ Số bù một của A nhận được bằng cách đảo
giá trị các bit của A
+ (Số bù hai của A) = (Số bù một của A) + 1
Ví dụ: với n= 8 bit
+ Giả sử có A = 0010 0101
+ Số bù một của A = 1101 1010
+1
+ Số bù hai của A = 1101 1011
Vì A + (Số bù hai của A) = 0  dùng số bù hai để
biểu diễn cho số âm
b. Biểu diễn số nguyên có dấu bằng mã bù hai
- Nguyên tắc tổng quát: Dùng n bit biểu diễn số
nguyên có dấu A:
an-1an-2…a2a1a0
a
= 0
+ Với A là số dương: bit n-1
, các
bit còn lại biểu diễn độ lớn như số không
dấu
+ Với A là số âm: được biểu diễn bằng số bù
hai của số dương tương ứng, vì vậy bit
an-1 = 1
Biểu diễn số dương
- Dạng tổng quát của số dương A:
0an-2…a2a1a0
- Giá trị của số dương A:
n -2
A   ai * 2
i
i 0
-
Dải biểu diễn cho số dương: 0 đến 2n-1-1
Biểu diễn số âm
- Dạng tổng quát của số âm A:
1an-2…a2a1a0
- Giá trị của số âm A:
A -2
n -1
-

n -2
a *2
i 0
i
i
Dải biểu diễn cho số âm: -1 đến -2n-1
Biểu diễn tổng quát cho số nguyên có dấu
- Dạng tổng quát của số nguyên A:
an-1an-2…a2a1a0
-
Giá trị của số nguyên A:
A  - a n -1 2
n -1
-

n -2
a *2
i 0
i
i
Dải biểu diễn cho số nguyên: -2n-1 đến 2n-1 -1
3.3.3 Các ví dụ
- Ví dụ 1. Biểu diễn các số nguyên có dấu sau đây
bằng 8 bit:
A = +58 ; B = -80
- Giải:
+ A = +58 = 0011 1010
+ B = -80
Ta có: +80 = 0101 0000
Số bù một = 1010 1111
+1
Số bù hai = 1011 0000
 Vậy: B = -80 = 1011 0000
-
-
Ví dụ 2: Hãy xác định giá trị của các số nguyên
có dấu được biểu diễn dưới đây:
+ P = 0110 0010
+ Q = 1101 1011
Giải:
+ P = 0110 0010 = 64 + 32 + 2 = +98
+ Q = 1101 1011 = -128+64+16+8+2+1 = -37
Với n = 8 bit
- Biểu diễn được các giá trị từ -128 đến +127
0000 0000 = 0
0000 0001 = +1
0000 0010 = +2
0000 0011 = +3
…
0111 1111 = +127
1000 0000 = - 128
1000 0001 = - 127
…
1111 1110 = -2
1111 1111 = -1
Với n=16 bit, 32 bit, 64 bit
- Với n=16 bit: biểu diễn từ -32768 đến +32767
0000 0000 0000 0000 = 0
0000 0000 0000 0001 = +1
…
0111 1111 1111 1111 = +32767
1000 0000 0000 0000 = - 32768
…
1111 1111 1111 1111 = -1
- 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
Chuyển đổi từ byte thành word
- Đối với số dương:
+19 = 0001 0011 (8 bit)
+19 = 0000 0000 0001 0011 (16 bit)
-
thêm 8 bit 0 bên trái
Đối với số âm:
- 19 = 1110 1101 (8 bit)
- 19 = 1111 1111 1110 1101 (16 bit)
thêm 8 bit 1 bên trái
3.3.4. Biểu diễn số nguyên theo mã BCD
- Binary Coded Decimal Code
- Dùng 4 bit để mã hoá cho các chữ số thập
phân từ 0 đến 9
0  0000
5  0101
1 0001
6  0110
2  0010
7  0111
3  0011
8  1000
4  0100
9  1001
- Có 6 tổ hợp không sử dụng:
1010, 1011, 1100, 1101, 1110, 1111
Ví dụ số BCD
35
61
1087
9640




0011 0101BCD
0110 0001BCD
0001 0000 1000 0111BCD
1001 0110 0100 0000BCD
Các kiểu lưu trữ số BCD
- BCD không gói (Unpacked BCD): Mỗi số BCD
4-bit được lưu trữ trong 4-bit thấp của mỗi byte.
- Ví dụ: Số 35 được lưu trữ như sau:
0011
0101
- BCD gói (Packed BCD): Hai số BCD được lưu
trữ trong 1 byte.
- Ví dụ: số 35 được lưu trữ như sau:
0011
0101
3.4. Thực hiện các phép toán số học với số
nguyên
3.4.1. Phép cộng số nguyên không dấu
Bộ cộng n bit
Y
X
Bộ cộng N bit
Cout
Cin
S
Nguyên tắc cộng số nguyên không dấu:
- Khi cộng hai số nguyên không dấu n-bit, kết
quả nhận được là n-bit:
+ Nếu không có nhớ ra khỏi bit cao nhất thì
kết quả nhận được luôn luôn đúng (Cout =
0).
+ Nếu có nhớ ra khỏi bit cao nhất thì kết quả
nhận được là sai,  có tràn nhớ ra ngoài
(Cout = 1).
+ Tràn nhớ ra ngoài (Carry Out) xảy ra khi
tổng > 2n-1
Ví dụ cộng số nguyên không dấu
57 =
0011 1001
+ 34 = + 0010 0010
91 =
0101 1011 = 64+16+8+2+1= 91 đúng
209 = 1101 0001
+ 73 = 0100 1001
282 1 0001 1010 = 16 + 8 + 2 = 26 sai
có tràn nhớ ra ngoài (Cout = 1)
- Để có kết quả đúng ta thực hiện cộng theo 16-bit:
209 = 0000 0000 1101 0001
+ 73 = 0000 0000 0100 1001
0000 0001 0001 1010 = 256+16+8+2 = 282
3.4.2. Phép đảo dấu
- Ta có:
+ 37 = 0010 0101
bù một = 0101 1010
+1
bù hai = 1101 1011 = -37
- Lấy bù hai của số âm:
- 37 = 1101 1011
bù một = 0010 0100
+1
bù hai = 0010 0101 = +37
- Kết luận: Phép đảo dấu trong máy tính thực
chất là lấy bù 2
3.4.3. Cộng số nguyên có dấu
- Khi cộng 2 số nguyên có dấu n-bit không quan
tâm đến bit Cout và kết quả nhận được là n-bit:
- Cộng 2 số khác dấu: kết quả luôn luôn đúng.
- Cộng 2 số cùng dấu:
+ Nếu dấu kết quả cùng dấu với các số
hạng thì kết quả là đúng.
+ Nếu kết quả có dấu ngược lại, khi đó có
tràn xảy ra (Overflow) và kết quả là sai.
- Tràn xảy ra khi tổng nằm ngoài dải biểu diễn
[-(2n-1),+(2n-1-1)]
Ví dụ cộng số nguyên có dấu không tràn
(+70)
= 0100 0110
+ (+42)
= 0010 1010
+112
= 0111 0000 = +112
(+97)
= 0110 0001
+ (- 52)
= 1100 1100
+45
= 1 0010 1101 = +45
(- 90)
= 1010 0110
+ (+36)
= 0010 0100
- 54
= 1100 1010 = -54
(- 74)
= 1011 0110
+ (- 30)
= 1110 0010
- 104
= 1 1001 1000 = -104
Ví dụ cộng số nguyên có dấu bị tràn
(+75)
= 0100 1011
+ (+82)
= 0101 0010
+157
= 1001 1101
= -128 + 16 + 8 + 4 + 1 = -99 sai
(- 104)
= 1001 1000
+ (- 43)
= 1101 0101
- 147
= 10110 1101
= 64 + 32 + 8 + 4 + 1 = +109 sai
- Cả 2 ví dụ trên đều tràn vì tổng nằm ngoài dải
biểu diễn [-128, +127]
3.4.4. Nguyên tắc thực hiện phép trừ
- Phép trừ 2 số nguyên: X – Y = X + (-Y)
- Nguyên tắc: Lấy bù hai của Y để được –Y, rồi
cộng với X
Y
X
Bộ cộng N bit
Cout
Cin
S
3.4.5. Nhân số nguyên không dấu
- Các thanh ghi M, Q, A: n bit
- C: 1 bit
- 2 thừa số là n-bit
- tích là số 2n-bit được chứa trong cặp thanh ghi
A, Q
Ví dụ 1011 x 1101 (11 x 13 = 143)
-n=4
-Số bị nhân
= 1011  M
-Số nhân
= 1101 Q
C
A
Q
0
0000
+1011
1011
0101
0010
+1011
1101
0110
+1011
0001
1101
0
0
0
0
0
0
1
0
các giá trị khởi đầu
1101 C, A  A + M
1110 Dịch phải 1 bit n = 3
1111 Dịch phải 1 bit n = 2
1111 C, A  A + M
1111 Dịch phải 1 bit n = 1
1111 C, A  A + M
1000 1111 Dịch phải 1 bit n = 0
3.4.6. Nhân số nguyên có dấu
- Phương pháp 1:
1. Chuyển đổi các thừa số thành số dương
2. Nhân 2 số dương như số nguyên không dấu
3. Hiệu chỉnh dấu của kết quả:
+ Nếu 2 thừa số cùng dấu  không cần
hiệu chỉnh
+ Nếu 2 thừa số khác dấu  đảo dấu kết
quả bằng cách lấy bù 2.
-Phương
pháp 2:Sử dụng thuật toán nhân nhanh Booth
Ví dụ (+7) x (-3) = (-21) theo Booth
-n
=4
A
-Số bị nhân
0000
=0111  M
+ 1001
-M = 1001
1001
-310 = 0011
1100
--310 = 1101
+ 0111
(Số nhân)Q
10011
0001
+ 1001
1010
1101
1110
Q
Q-1
1101
0
các giá trị khởi đầu
1101
1110
0
1
C, A  A - M
Dịch phải 1 bit n = 3
1110
1111
1
0
C, A  A + M
Dịch phải 1 bit n = 2
1111
0111
1011
0
1
1
C, A  A - M
Dịch phải 1 bit n = 1
Dịch phải 1 bit n = 0
3.4.7. Chia
số
nguyên
không
dấu
- Thương
chứa
trong Q,
- Phần dư
chứa
trong A
Ví dụ 7:3 = 2 dư 1
-n
=4
-Số bị chia
=0111  Q
- Số chia
310 = 0011M
--M = 1101
A
0000
0000
1101
0000
0001
1110
0001
0011
0000
0000
0001
1110
0001
Q
0111
1110
1110
1100
1100
1000
các giá trị khởi đầu
Dịch trái
A  A - M = A + (-M)
Khôi phục A, n = 3
Dịch trái
AA-M
Khôi phục A, n = 2
Dịch trái
AA-M
1001
0010
Q0 1, n = 1
Dịch trái
0010
AA-M
Khôi phục A, n = 0
3.4.8. Chia số nguyên có dấu
- Sử dụng thuật giải chia số nguyên không dấu
+ Đổi số bị chia và số chia  dương
+ Chia như số nguyên không dấu  thương
và phần dư (đều là số dương)
+ Hiệu chỉnh dấu:
(+) : (+)  không hiệu chỉnh dấu kết quả
(+) : (-) đảo dấu thương
(-) : (+)  đảo dấu thương và phần dư
(-) : (-)  đảo dấu phần dư
3.5. Số dấu chấm động
3.5.1. Nguyên tắc chung
- Floating Point Number  biểu diễn cho số thực
- Tổng quát: một số thực X được biểu diễn theo
kiểu số dấu chấm động như sau:
X=M*
E
R
+ M là phần định trị (Mantissa),
+ R là cơ số (Radix),
+ E là phần mũ (Exponent).
3.5.2. Chuẩn IEEE754/85
- Cơ số R = 2
- Các dạng:
+ Dạng 32-bit
+ Dạng 48-bit
+ Dạng 64-bit
+ Dạng 80-bit
Các dạng biểu diễn chính chính
1
8 bits
S Exponent
Excess - 127
23 bits
Mantissa
1
11 bits
S Exponent
Excess - 1023
1
S
15 bits
Exponent
Excess - 16383
52 bits
Mantissa
64 bits
Mantissa
Dạng 32-bit
- S là bit dấu:
+ S = 0  Số dương
+ S = 1  Số âm
- e (8 bit) là mã excess-127 của phần mũ E:
+ e = E + 127  E = e – 127
+ giá trị 127 được gọi là độ lệch (bias)
- m (23 bit) là phần lẻ của phần định trị M:
+ M = 1.m
- Công thức xác định giá trị của số thực:
X = (-1)S *1.m*2 e-127
Ví dụ 1
- Xác định giá trị của số thực được biểu diễn
bằng 32-bit như sau:
1100 0001 0101 0110 0000 0000 0000 0000
- S = 1  Số âm
e = 1000 00102 = 130  E = 130 – 127 = 3
Vậy:
-
X = -1.10101100 * 23 = -1101.011 = -13.375
-
0011 1111 1000 0000 0000 0000 0000 0000 =?
= +1.0
Ví dụ 2
- Biểu diễn số thực X = 83.75 về dạng số dấu
chấm động IEEE754 32-bit
Giải:
- X = 83.7510 = 1010011.112 = 1.01001111 x 26
- Ta có:
+ S = 0 vì đây là số dương
+ E= e-127=6e=127+6=13310=1000 01012
- Vậy:
X = 0100 0010 1010 0111 1000 0000 0000 0000
Các quy ước đặc biệt
Các bit của e bằng 0, các bit của m bằng 0, thì X= ± 0
x000 0000 0000 0000 0000 0000 0000 0000  X= ± 0
- Các bit của e bằng 1, các bit của m bằng 0, thì X= ± ∞
x111 1111 1000 0000 0000 0000 0000 0000  X= ± ∞
- Các bit của e bằng 1, còn m có ít nhất 1 bit bằng 1, thì
nó không biểu diễn cho số nào cả (NaN – not a
number)
-
-
Phạm vi biểu diễn:
+ 2-127 đến 2+127
+ 10-38 đến 10+38
Dạng 64-bit
- S là bit dấu
- e (11 bit) là mã excess-1023 của phần mũ E:
E = e – 1023
-
m (52 bit) là phần lẻ của phần định trị M:
Giá trị của số thực:
X = (-1)S *1.m*2e-1023
-
Dải giá trị biểu diễn: 10-308 đến 10+308
Dạng 80-bit
- S là bit dấu
- e (15 bit) là mã excess-16383 của phần mũ E:
E = e – 16383
-
m (64 bit) là phần lẻ của phần định trị M:
Giá trị của số thực:
-
X = (-1)S*1.m*2e-16383
Dải giá trị biểu diễn: 10-4932 đến 10+4932
-
FP Addition & Subtraction Flowchart
Floating Point Multiplication
Floating Point Division
3.6. Biểu diễn ký tự
Bộ mã ASCII (American Standard Code for
Information Interchange)
Bộ mã Unicode
3.6.1. Bộ mã ASCII
- Do ANSI (American National Standard Institute)
thiết kế
- Bộ mã 8 bit có thể mã hóa được 28 =256 ký tự,
có mã từ: 0016 ÷ FF16 , trong đó:
+ 128 ký tự chuẩn, có mã từ 0016 ÷ 7F16
+ 128 ký tự mở rộng, có mã từ 8016 ÷ FF16
ASCII character Code 128 ký tựchuẩn
Các ký tự chuẩn
- 26 chữ cái hoa ‘A’ đến ‘Z’ có mã từ 4116 đến 5A16
(65 đến 90)
+ ‘A’  0100 0001 = 4116
+ ‘B’  0100 0010 = 4216
...
+ ‘Z’  0101 1010 = 5A16
- 26 chữ cái thường ‘a’ đến ‘z’ có mã từ 6116 đến
7A16 (97 đến 122)
+ ‘a’  0110 0001 = 6116
+ ‘b’  0110 0010 = 6216
...
+ ‘z’  0111 1010 = 7A16
-
-
10 chữ số thập phân từ 0 đến 9 có mã từ 3016
đến 3916 (48 đến 57)
+ ‘0’  0011 0000 = 3016
+ ‘1’  0011 0001 = 3116
+ ‘2’  0011 0010 = 3216
+ ...
+ ‘9’  0011 1001 = 3916
Các ký hiệu khác:
+ Các dấu câu: . , : ; ...
+ Các dấu phép toán: + - * / % ...
+ một số ký hiệu thông dụng: &, $, @, #
+ dấu cách (space)
Các mã điều khiển: có mã 0016 ÷ 1F16 và 7F16
- Các mã ký tự điều khiển định dạng (điều khiển
màn hình, máy in …):
+ BS, HT, LF, VT, FF, CR
- Các mã ký tự điều khiển truyền tin:
+ SOH, STX, ETX, EOT, ENQ, ACK, NAK, SYN,
ETB
- Các mã ký tự điều khiển phân cách thông tin:
+ FS, GS, RS, US
- Các mã ký tự điều khiển khác:
+ NUL, BEL, SO, SI, DLE, DC1+DC4, CAN, EM,
SUB, ESC, DEL
Các ký tự mở rộng: có mã 8016 ÷ FF16
- Các ký tự mở rộng được định nghĩa bởi:
+ nhà chế tạo máy tính
+ người phát triển phần mềm
- Ví dụ:
+ Bộ mã ký tự mở rộng của IBM  IBM-PC.
+ Bộ mã ký tự mở rộng của Apple 
Macintosh.
+ Có thể thay đổi các ký tự mở rộng để mã
hóa cho các ký tự riêng của tiếng Việt, ví
dụ như bộ mã TCVN3.
3.6.2. Bộ mã hợp nhất Unicode
- Do các hãng máy tính hàng đầu thiết kế
- Bộ mã 16-bit
- Bộ mã đa ngôn ngữ
- Có hỗ trợ các ký tự tiếng Việt
Unicode Character Code 256 ký tự chuẩn