Chương 1: Hệ đếm - Mã hóa và lưu trữ thông tin trình bày những nội dung chính về mã hóa và lưu trữ thông tin, các hệ đếm, các quy tắc chuyển đổi một số giữa các hệ đếm, các phép toán trên số nhị phân, bảng mã ASCII và các bài tập.
Trang 1MỤC LỤC 1
M ỤC LỤC 1
Ch ương 1 - HỆ ĐẾM – MÃ HÓA VÀ LƯU TRỮ THÔNG TIN 2
1 MÃ HÓA VÀ LƯU TRỮ THÔNG TIN 2
1.1 Cách tổ chức dữ liệu trong bộ nhớ chính 2
1.2 Cách tổ chức một Byte 2
1.3 Các kiểu dữ liệu 3
1.4 Các ngôn ngữ lập trình 3
2 CÁC HỆ ĐẾM 3
2.1 Hệ nhị phân (cơ số 2) 3
2.2 Hệ bát phân (cơ số 8) 4
2.3 Hệ thập phân (cơ số 10) 4
2.4 Hệ thập lục phân (cơ số 16) 4
3 CÁC QUI TẮC CHUYỂN ĐỔI MỘT SỐ GIỮA CÁC HỆ ĐẾM 5
3.1 Qui tắc chung 5
3.2 Qui tắc chuyển đổi một số từ hệ 10 sang hệ cơ số b (b ≠10) 5
3.3 Qui tắc chuyển đổi một số từ hệ 2 sang hệ 16 5
3.4 Qui tắc chuyển đổi một số từ hệ 16 sang hệ nhị phân 5
4 CÁC PHÉP TOÁN TRÊN SỐ NHỊ PHÂN 5
4.1 Cộng nhị phân 5
4.2 Cách lưu trữ số âm 6
4.3 Cách lưu trữ số thực 8
4.4 Các phép toán số học (arithmatic)/luận lý (logic) 13
5 Bảng mã ASCII 15
6 Bài tập 15
Trang 2Chương 1: Hệ đếm – Mã hóa và lưu trữ thông tin 2
1 MÃ HÓA VÀ L ƯU TRỮ THÔNG TIN
Lưu trữ thông tin trên bộ nhớ (chính và phụ) dựa trên khả năng biểu diễn thông tin qua các bit
(đơn vị lưu trữ dữ liệu nhỏ nhất trong bộ nhớ)
1.1 Cách t ổ chức dữ liệu trong bộ nhớ chính
Đơn vị lưu trữ nhỏ nhất trong bộ nhớ là bit (Binary ditgit) Bit có hai trạng thái: 0/False và
1/True Thông tin được biểu diễn thông qua một nhóm bit (0 và 1), các thông tin khác nhau sẽ có
dãy bit khác nhau Thông tin có thể là ký tự, số, hoặc dấu câu,…Tốc độ truyền dữ liệu được tính
dưới dạng số bit trên 1 giây
1 Kbps = 103 bits per second (hay 103 bps)
1 Mbps = 106 bits per second
Mỗi 8 bit gộp lại thành một nhóm nhỏ gọi là Byte (theo thứ tự từ phải qua trái)
Số lượng byte trong bộ nhớ ở mỗi máy tính là khác nhau Kích thước bộ nhớ chính được đo
bằng đơn vị Mega Byte (MB) Ngoài ra, còn có các đơn vị đo lường khác như sau:
1 KB = 1024 Byte = 210 Byte
1 MB = 1024 KB = 220 Byte
1 GB = 1024 MB = 230 Byte
Tóm lại, bộ nhớ máy tính là chuỗi các byte được tạo từ các bit Các byte bộ nhớ có thể truy
cập (access) hoặc cho phép đặt lại giá trị Dữ liệu ở một byte là xác định tại một thời điểm, nghĩa
là nếu có yêu cầu thay đổi thông tin thì thông tin cũ sẽ bị mất Thao tác lấy thông tin từ bộ nhớ
gọi là thao tác đọc dữ liệu (Read) và thao tác ghi thông tin lên bộ nhớ gọi là thao tác ghi dữ liệu
(Write)
Đối với các byte cho phép cả hai thao tác đọc – ghi (Read – Write) dữ liệu thì các byte này
nằm trong bộ nhớ RAM (Random Access Memory), dữ liệu lưu trữ ở các byte này sẽ bị mất khi
có sự cố mất điện Với các byte chỉ cho thao tác đọc (Read) thì các byte này nằm trong bộ nhớ
ROM (Read Only Memory), các byte này chứa các dữ liệu do nhà sản xuất đưa vào
1.2 Cách t ổ chức một Byte
Một Byte có 8 bit được đánh số từ phải sang trái với các số từ 0 đến 7
1 0 1 0 1 1 1 0
Bit có ý
Bit thứ 7 gọi là bit cao (cực trái) và bit thứ 0 gọi là bit thấp (cực phải) Một Byte có thể lưu
trữ một số nguyên có giá trị trong khoảng từ 0 đến 255 (00000000 đến 11111111)
Như vậy, với 2 Byte có thể lưu trữ một số nguyên có giá trị từ 0 đến 65535 Sử dụng phương
pháp nhị phân để lưu trữ làm tăng hiệu quả lưu trữ các sô nguyên so với cách dùng bảng mã
ASCII Ngoài ra, còn sử dụng hệ nhị phân để biểu diễn các số âm (dùng phương pháp bù 2), hoặc
dùng phương pháp dấu chấm động để biểu diễn số thập phân (số thực)
Trang 3Chương 1: Hệ đếm – Mã hóa và lưu trữ thông tin 3
1.3 Các ki ểu dữ liệu
1.3.1
1.3.2
1.3.3
S ố nguyên (Integer)
Trong thế hệ máy 8086, số nguyên integer được lưu trữ trong 2 Byte (16-bit) Như vậy tối đa
có 216 = 65536 giá trị nguyên dương
Để biểu diễn số nguyên âm, trong dãy 16-bit, chia thành hai vùng:
- 1 bit dùng làm bit dấu (cực trái)
- 15 bit còn lại là giá trị số (215
=32 768 số)
Có nhiều phương pháp biểu diễn số âm trong máy tính Thông thường người ta dùng
phương pháp bù 2 Trong phương pháp này, phạm vi giá trị nguyên từ -32 768 đến +32
767
S ố thực (Real)
Số thực được biểu diễn dưới dạng dấu chấm tĩnh hoặc dấu chấm động
Trong biểu diễn số thực dấu chấm động 4 Byte (32-bit), phạm vi số thực từ 10-38đến10+38
(số
âm và dương)
Ký t ự
Trong bảng qui ước ASCII, kích thước một ký tự là 1 Byte Như vậy, bảng mã này có 256 ký
tự
Trong bảng Unicode, kích thước một ký tự là 2 Byte, do đó bảng mã này có đến 65536 ký tự,
gồm nhiều bộ ký tự của các quốc gia
1.4 Các ngôn ng ữ lập trình
1 Hợp ngữ (Assembly)
2 FORTRAN
3 C/C++
5 Java
6 Visual Basic
7 C#
8 PHP
9 …
2 CÁC H Ệ ĐẾM
2.1 H ệ nhị phân (cơ số 2)
Hệ nhị phân (hay còn gọi là Binary) biểu diễn giá trị dưới dạng dãy các bit 0 và 1 Ví dụ:
1011
Các số biểu diễn ở hệ nhị phân là một dãy bit, ứng với mỗi vị trí bit được gán một trọng số đi
từ phải qua trái có giá trị từ 1,2,4,8, Dựa theo qui luật: số sau bằng 2 lần số trước Ví dụ dãy bit
100101 là biểu diễn nhị phân của 37
100101 = 1x1 = 1
0x2 = 0 1x4 = 4 0x8 = 0 0x16 = 0
Giá tr ị tổng cộng = 37
Trang 4Chương 1: Hệ đếm – Mã hóa và lưu trữ thông tin 4
2.2 H ệ bát phân (cơ số 8)
Tên gọi trên máy tính là Octor
Nhóm 3 bit lại với nhau (từ phải qua trái), ta được các số biểu diễn ở hệ 8 (23
=8) Bảng chuyển đổi giữa hệ 2 và hệ 8:
H ệ 2 H ệ 8 H ệ 2 H ệ 8
000 0 100 4
001 1 101 5
010 2 110 6
011 3 111 7
2.3 H ệ thập phân (cơ số 10)
Tên gọi trên máy tính là Decimal
Các số cơ bản biểu diễn trong hệ cơ số 10 từ 0 đế 9 Ví dụ số 37
2.4 H ệ thập lục phân (cơ số 16)
Tên gọi trên máy tính là Hexa
Nhóm 4 bit lại với nhau (từ phải qua trái), ta được các số biểu diễn ở hệ 16 (24
=16)
Các số biểu diễn trong hệ 16:
- Giá trị số: Từ 0 đến 9
- Ký tự: Từ A đến F
Bảng chuyển đổi giữa hệ 2, 10, và 16:
H ệ 2 H ệ 10 H ệ 16 H ệ 2 H ệ 10 H ệ 16
0000 0 0 1000 8 8
0001 1 1 1001 9 9
0010 2 2 1010 10 A
0011 3 3 1011 11 B
0100 4 4 1100 12 C
0101 5 5 1101 13 D
0110 6 6 1110 14 E
0111 7 7 1111 15 F
Trang 5Chương 1: Hệ đếm – Mã hóa và lưu trữ thông tin 5
3 CÁC QUI T ẮC CHUYỂN ĐỔI MỘT SỐ GIỮA CÁC HỆ ĐẾM
Các số cơ bản của một hệ đếm là các số tối thiểu để biểu diễn mọi số trong hệ đếm ấy
3.1 Qui t ắc chung
Nếu một số có giá trị lớn hơn các số cơ bản thì nó sẽ được biểu diễn bằng cách tổ hợp các
chữ số cơ bản theo công thức sau:
X= an an-1…a1 ao = anbn + an-1bn-1…a1b + ao (*)
Với b là cơ số của hệ đếm, an,an-1…,a1,ao là các chữ số cơ bản X là số ở hệ đếm cơ số b
3.2 Qui t ắc chuyển đổi một số từ hệ 10 sang hệ cơ số b (b ≠10)
Lấy số thập phân chia cho cơ số b cho đến khi phần dương của phép chia bằng 0, số đổi được
sẽ là các phần dư của phép chia theo thứ tự ngược lại
Ví dụ: cho X=610 nghĩa là X=6 trong hệ 10 sẽ được đổi thành 1102 trong hệ 2 Cách đổi như
sau: 6 chia 2 = 3, dư 0
3 chia 2 = 1, dư 1
1 chia 2 = 0, dư 1
Vậy kết quả là: 110
Ngược lại, nếu muốn đổi một số từ cơ số b sang cơ số 10, ta sử dụng công thức (*) Ví dụ:
X=1102 thì X=1x22 +1x21 +0=6
3.3 Qui t ắc chuyển đổi một số từ hệ 2 sang hệ 16
Nhóm lần lượt 4 bit từ phải qua trái, sau đó thay thế các nhóm 4 bit bằng các giá trị tương
ứng với hệ thập lục phân (tra bảng) Ví dụ: X=11’10112=3B16
3.4 Qui t ắc chuyển đổi một số từ hệ 16 sang hệ nhị phân
Ứng với mỗi chữ số sẽ được biểu diễn dưới dạng 4 bit nhị phân
Ví dụ: X=3B16=0011’10112=11’10112
4 CÁC PHÉP TOÁN TRÊN S Ố NHỊ PHÂN
4.1 C ộng nhị phân
Khi cộng, thực hiện công từ phải qua trái, ứng với mỗi cột ta cộng 2 số theo qui tắc trên, nếu
có nhớ thì cộng nhớ sang cột kế bên
Ví dụ: cộng hai dãy bit sau đây, dãy 1: 111010; dãy 2: 11011
0 0 1 1 1 0 1 0
0 0 0 1 1 0 1 1
+
1
Trang 6Chương 1: Hệ đếm – Mã hóa và lưu trữ thông tin 6
+
0 1
+
1 0 1
+
+
+
+
+
0 1 0 1 0 1 0 1 4.2 Cách l ưu trữ số âm
4.2.1 Ph ương pháp dấu lượng (sign – magnitude)
Bit cực trái dùng làm bit dấu Bit 1 là dấu dương (+), và bit 0 là dấu âm (-)
Ví dụ: với mẫu là 4 bit thì các số biểu diễn như sau:
Mẫu bit Giá trị biểu diễn
Mẫu bit Giá trị biểu diễn
Trang 7Chương 1: Hệ đếm – Mã hóa và lưu trữ thông tin 7
Để biểu diễn một số âm về dạng nhị phân có dấu với mẫu K bit thì lấy số cần biểu diễn cộng
thêm 2k-1, sau đó biểu diễn chúng về hệ nhị phân
Ví dụ: Với số +5 trong mẫu 4 bit thì biểu diễn là 5 + 23
= 1310 sẽ là 1101
Với số -5 trong mẫu 4 bit thì biểu diễn là -5 + 23
= 310 sẽ là 0011
4.2.2
4.2.3
Bi ểu diễn số bù 1
Vẫn dùng bit cực trái làm bit dấu nhưng với qui định bit 0 cho số dương và bit 1 cho số âm
Để biểu diễn số n theo dạng bù 1, ta áp dụng qui tắc biểu diễu dưới dạng nhị phân của trị
tuyệt đối n theo mẫu K bit cho trước Nếu n<0, đổi 1 thành 0 và ngược lại
Ví dụ:
Với n = 5 (mẫu 4 bit) biễu diễn theo phương pháp bù 1 là 0101
n = -5 1010
Với n = 6 _0110
n = -6 _1001
Bi ểu diễn số bù 2
Vẫn sử dụng bit cực trái làm bit dấu giống như bù 1, nhưng có một số khác biệt khi đổi sang
hệ nhị phân có dấu
Biểu diễn dưới dạng nhị phân của trị tuyệt đối n theo mẫu K bit cho trước Nếu n<0, bắt đầu
từ phải qua trái giữ nguyên các bit cho đến khi gặp bit có giá trị 1 đầu tiên, sau đó các bit tiếp
theo bên trái bit 1 đầu tiên đó đổi 1 thành 0 và ngược lại
Ví dụ: Với n = -6, biểu diễn nhị phân trị tuyệt đối của n (theo mẫu 4 bit) là 0110, khi đó biểu
diễn số bù 2 của n là 1010
Biểu diễn số bù 2 theo mẫu 4 bit
Mẫu bit Giá trị biểu diễu
Mẫu bit Giá trị biểu diễu
Trang 8Chương 7– EndNote 8
Thực chất, số biểu diễn dưới dạng bù 2 là số biểu diễn ở dạng bù 1, sau đó cộng thêm 1
4.2.4 Phép c ộng số bù 1 và bù 2
4.2.4.1 C ộng số bù 1
Khi thực hiện phép toán cộng đối với số bù 1, làm tương tự như cộng nhị phân Nếu ở hai
bit cực trái khi thực hiện phép cộng có phát sinh nhớ thì cộng nhớ vào kết quả
Ví dụ: thực hiện cộng m = - 6 biểu diễn bù 1 (mẫu 5 bit) là 11001, và
n = - 4 biểu diễn bù 1 (mẫu 5 bit) là 11011
+
+
1 0 1 0 1 -10 ở bù 1
4.2.4.2 C ộng số bù 2
Khi thực hiện phép toán cộng đối với số bù 2, làm tương tự như cộng nhị phân Nếu ở hai
bit cực trái khi thực hiện phép cộng có phát sinh nhớ thì bỏ nhớ
Ví dụ:
Thực hiện cộng m = - 6 biểu diễn bù 2 (mẫu 5 bit) là 11010, và
n = - 4 biểu diễn bù 1 (mẫu 5 bit) là 11100
1 1 0 1 0
+
1 0 1 1 0 -10 ở bù 2 (bỏ nhớ 1)
4.2.5
4.3.1
Tràn s ố
Hiện tượng tràn số xảy ra khi số cần biểu diễn vượt quá số bit cho trước
Ví dụ:
Thực hiện phép cộng m = -6 và n = -4 ( bù 1 theo mẫu 4 bit) Kết quả phép cộng ở dạng bù
1 là 0110 là biểu biễn của +6 Æ kết quả sai!!!
Để tránh trường hợp lỗi tràn số, ta tăng số bit biểu diễn lên Tổng quát, số ở dạng bù 1 và 2,
giá trị dương lớn nhất khi dùng mẫu n bit là: 2n-1
-1 và giá trị âm nhỏ nhất là -2n-1
4.3 Cách l ưu trữ số thực
Khác với số nguyên, số thực không chỉ đơn thuần biểu diễn ở dạng nhị phân 0 và 1 và còn
dựa vào dấu chấm cơ số, thường gọi là biểu diễn dấu chấm động (floating point notation)
Bi ểu diễn số thực dùng dấu chấm tĩnh (Fixed-point)
Để biểu diễn hỗn số bằng hệ nhị phân ta dùng dấu chấm cơ số (radix point) Số bên trái dấu
chấm cơ số biểu diễn nhị phân của phần nguyên của số thực và bên phải là biểu diễn nhị phân
của phần dư (phân số), vị trí bit bên phải đầu tiên sau dấu chấm là biểu diễn cho số
1/2,1/4,1/8,…Với qui luật số sau nhỏ hơn 2 lần số trước Các giá trị này gọi là trọng số của bit
tương ứng với vị trí tính từ vị trí đầu tiên bên phải của dấu chấm cơ số
Trang 9Chương 7– EndNote 9
Để biến đổi số thực ở hệ 2 phân sang hệ 10, thực hiện đổi phần nguyên và phần dư (phân
số) sang hệ thập phân, nhưng chú ý số nhị phân bên phải dấu chấm sẽ có trọng số bắt đầu từ ½
và giảm một nữa từ trái sang phải
Ví dụ:
Cho số thực 5.625, biểu diễn nhị phân là 101.101 Cách tính như sau:
Phần nguyên là 5, biểu diễn nhị phân là 101 (tra bảng)
Phần dư (phân số là 5/8):
0.625 chia ½ (nhân 2) = 1.25
0.25 chia ½ = 0.5
0.5 chia ½ = 1
Do đó, biểu diễn nhị phân của 0.625 là 101
Trong trường hợp ngược lại, muốn chuyển phần dư từ hệ 10 sang hệ 2 thì nhân thêm ½
4.3.2 C ộng nhị phân trên số thực
Cộng nhị phân trên số thực cũng giống như cộng nhị phân trên số nguyên, nhưng chú ý là
dấu chấm cơ số phải sắp thẳng hàng cho hai số
Ví dụ:
1 0 0 1 1 Biểu diễn của 2.375
1 0 0 1 1 Biểu diễn của 4.75 +
1 1 1 0 0 1 Biểu diễn của 7.125
4.3.3 Ph ương pháp biểu diễn dấu chấm động (Floating-point)
Để biểu diễn số thực dưới dạng dấu chấm động, sử dụng các khái niệm:
- Bit dấu (Sign): 0 (dương); 1(âm)
- Phần mũ (Expnent)
- Phần định trị (Mantissa)
nb = be.m, trong đó: b: cơ số
e: phần mũ m: phần định trị
Ví dụ: n=17
17 = 101x1.7
Phương pháp này sử dụng chuẩn IEEE tích hợp sẳn trong các thế hệ máy tính sử dụng chip
Intel (Pentium) hiện nay Chuẩn IEEE (Institude of Electical and Electronics Engineers) dành
riêng cho biểu diễn và tính toán trên số thực
Dựa vào số bit biểu diễn, chuẩn IEEE phân thành 4 mức cơ bản sau:
Presision Sign
(bits)
Exponent (bits)
Mantissa (bits)
Total (bits)
4.3.3.1 Ph ương pháp chung
Trang 10Chương 7– EndNote 10
Miền giá trị của e bits mũ: -2e-1 ≤ E ≤ 2e-1
-1
Một số trường hợp đặc biệt:
Type Exponent Mantissa
Infinities (không xác định) 2e
-1 0
Mỗi miền giá trị bỏ đi 2 giá trị: Infinities và NaN Do đó, ta có bảng tương ứng 4 mức biểu
diễn như sau:
Presision E min E max
4 bytes (single) -126 127
8 bytes (double) -1022 1023
16 bytes (quadruple) -16382 16383
4.3.3.2 Dùng 32-bits
Biểu diễn giá trị:
v = s x 2e x m, trong đó: s = +1 khi bit dấu (S) là 0
s = -1 khi bit dấu (S) là 1
e = Exp – 127 (Exp là giá trị thập phân của 8 bit mũ)
m =1.<phần dư> (1 ≤ m < 2)
Ví d ụ: biểu diễn nhị phân n=-118.625 (dùng chuẩn IEEE 754)
1 Biểu diễn n sang nhị phân dùng dấu chấm tĩnh (Fixed-point): 1110110.101
2 Di chuyển dấu chấm cơ số đến sau bit đầu tiên: 1.110110101 x 26
3 Điền bit 0 vào sau dãy sao cho đủ 23 bit (tính từ sau dấu chấm cơ số):
11011010100000000000000
Trang 11Chương 7– EndNote 11
4 Ta xác định được số mũ e = 6 Theo công thức: Exp = 127+6 = 133 Chuyển 133 sang hệ
nhị phân sẽ là: 10000101
M ột số giá trị đặc biệt
Sign
(S)
Exponent (e)
Mantissa (m)
Value
0 00000000 00000000000000000000000 +0
(positive zero)
1 00000000 00000000000000000000000 -0
(negative zero)
1 00000000 10000000000000000000000
-2
0-127
x0.(2
-1
)= -2
0-127
x 0.5
0 00000000 00000000000000000000001
+2
0-127
x0.(2
-23
) (smallest value)
0 00000001 01000000000000000000000
+2
1-127
x1.(2
-2
)= +2
1-127
x1.25
0 10000001 00000000000000000000000
+2
129-127
x1.0= 4
0 11111111 00000000000000000000000 + infinity
1 11111111 00000000000000000000000 - infinity
0 11111111 10000000000000000000000 Not a Number(NaN)
1 11111111 10000100010000000001100 Not a Number(NaN)
Lưu ý, vấn đề khi biểu diễn số thực là làm tròn số Do đó, ta dùng phương pháp làm tròn
giá trị gần số chẳn nhất Ví dụ:
Unrounded Rounded
3.4 3
5.6 6
3.5 4
2.5 2
4.3.3.3 C ộng (trừ) hai số thực
Ví dụ: Cộng hai số thực dưới dạng dấu chấm động sau:
m = 24 x 1.1001
n = 22 x 1.0010
B ước 1: lấy hiệu của số mũ
Em = 24 (em = 4); En = 22 (en = 2)
Î Em-n = 24-2 = 22 (em-n = 2)
B ước 2: Di chuyển dấu chấm cơ số sang phải em-n vị trí Ta được:
1.1001 000
0.0100 100
B ước 3: Cộng hai số lại với nhau:
1.1001 000 0.0100 100
1.1101 100
B ước 4: Làm tròn kết quả cộng ở bước 3: 1.1101 Æ 1.1110
B ước 5: Kết quả 24
x 1.1110
+
+
+