Hình II.7 CPU, bộ nhớ, thiết bị vàora và khả năng sử dụng ngắt
6. Biểu diễn dữ liệu số trong máy tính
6.1. Biểu diễn số và số âm
Trong máy tính các số được biểu diễn bằng dãy các số nhị phân, ví dụ 1910 = 100112. Mỗi số nhị phân trong dãy biểu diễn này được gọi là bit. Như vậy bit chỉ có thể nhận một trong hai giá trị "0" hoặc "1". Bit là đơn vị cơ bản nhất, nhỏ nhất để biểu diễn dữ liệu trong máy tính.
Với 7 bit ta chỉ biểu diễn được các số từ 0 = 00000002 đến 11111112
(= 12710). Để biểu diễn được các giá trị âm từ -127 đến 0, tức từ -11111112
đến 00000002, ta cần sử dụng thêm 1 bit để đánh dấu. Đây là bit thứ 8, gọi là
bit dấu và nằm ở vị trí cao nhất (bên trái) trong số nhị phân. Theo quy ước
chung số dương có bit dấu là 0, số âm có bit dấu là 1.
Bit dấu 26 25 24 23 22 21 20
S D6 D5 D4 D3 D2 D1 D0
Trên thực tế người ta còn sử dụng số bù để biểu diễn số âm. Kỹ thuật này cho phép máy tính có thể thực hiện phép trừ như là phép cộng.
Trước hết ta minh họa phương pháp biểu diễn này trong hệ thập phân. Trong hệ thập phân số bù chính là số bù 10. Số bù 10 của một số được tạo bằng cách lấy 9 trừ đi mỗi chữ số và sau đó cộng 1 vào chữ số có ý nghĩa thấp nhất. Ví dụ số bù 10 của 88 là 12, của 23 là 77.
Việc thực hiện phép trừ một số dương (số bị trừ) đi một số dương (số trừ) có thể được thực hiện thông qua phép cộng như sau:
(1) Tạo số bù 10 của số trừ
(2) Cộng số bị trừ với số bù 10 của số trừ
(3) Nếu có nhớ ở chữ số cao nhất thì chữ số đó bị bỏ đi và kết quả là số dương. Nếu không kết quả là âm và kết quả thật là số bù 10 của số nhận được và thêm dấu – vào đằng trước.
Ví dụ 1. 97 – 88 = 09
(1) Tạo số bù 10 của 88 là 12 (2) Cộng 97 với 12 được 109
(3) Có nhớ ở chữ số cao nhất: Kết quả là số dương và bằng 09. Ví dụ 2. 53 – 67 = -14
(1) Tạo số bù 10 của 67 là 33 (2) Cộng 53 với 33 được 86
(3) Không nhớ ở số cao nhất, kết quả là âm.
(4) Lấy số bù 10 của 86 được 14. Kết quả thật là – 14.
Trong hệ nhị phân, số bù được hiểu là số bù 2. Số bù 2 là số được tạo ra bằng cách lấy 1 trừ đi mỗi chữ số và cộng 1 vào số có giá trị thấp nhất, hoặc tương đương, đổi số 0 thành số 1, số 1 thành số 0 và cộng 1 vào số có giá trị thấp nhất.
Ví dụ số bù 2 của 11000 là (00111 + 1) = 01000.
Trong hệ nhị phân, sử dụng số bù 2 phép trừ cũng được thực hiện thông qua phép cộng.
Ví dụ 1. Cả hai số là số dương: cộng từng số từ phải qua trái, kể cả bit dấu.
Ký pháp bình thường 1000 + 0101 = 1101,
Nguyễn Trung Đồng – Tel 0983 410 866
Ví dụ 2. Một số dương và một số âm có trị tuyệt đối nhỏ hơn: Tạo bù 2 của của số âm, thêm bit dấu vào vị trí cao nhất. Bỏ bit nhớ trong kết quả và kết quả là số dương.
Ký pháp bình thường 1000 + (-0101) = 0011,
Dạng dữ liệu trong máy tính 01000 + 11011 =1 00011. Kết quả 00011 Ví dụ 3. Một số dương và một số âm có trị tuyệt đối lớn hơn: Thực hiện phép cộng, bit dấu không có nhớ. Kết quả là số âm dạng bù 2. Cần bỏ bit dấu để tạo số bù 2 để có kết quả thật
Ký pháp bình thường 0101 + (-1000) = -0011,
Dạng dữ liệu trong máy tính 00101 + 11000 = 11101. Kết quả -0011 Ví dụ 4. Hai số âm: Khi thực hiện phép công, có nhớ ở bit dấu. Cần bỏ bit nhớ và kết quả là số âm dạng bù 2.
Ký pháp bình thường -0101 + (-1000) = -1101,
Dạng dữ liệu trong máy tính 11011 + 11000 = 11000. Kết quả -1101 Trong máy tính hai số nhị phân 0 và 1 được biểu diễn và lưu giữ bằng các thiết bị hai trạng thái (có dòng điện/không có dòng điện, điện áp
cao/điện áp thấp, v.v.). Một số, sau khi biểu diễn dưới dạng nhị phân, được biểu diễn và lưu trong máy tính bằng dãy các thiết bị hai trạng thái (được liên kết với nhau theo cách nào đấy). Dãy các thiết bị hai trạng thái đó được gọi là thanh ghi. Các thanh ghi được gán các tên khác nhau để phân biệt, ví dụ thanh ghi A, thanh ghi B.
6.2. Biểu diễn số dấu phẩy động (Floatting Point Number)
Khi biểu diễn các số rất lớn hoặc rất nhỏ người ta thường dùng ký pháp dấu chấm động. Ví dụ 190000=0.49*106, 0.00023=0.23*10-3. Dạng biểu diễn tổng quát:
Định trị * Cơ số Số mũ
Chẳng hạn, trong hai số trên định trị là 0.19 và 0.23, cơ số = 10, số mũ là 6 và –3.
Trong máy tính số biểu diễn theo dấu chấm động có hai dạng:
6.2.1. Dạng đơn giản
Số dấu chấm động được lưu dưới dạng 32 bit:
S E F
N = (-1)S
2E-127
1.F
Bit đầu tiên là bit dấu, 8 bit tiếp theo là số nguyên nhị phân biểu diễn số mũ, 23 bit cuối cùng là số nhị phân biểu diễn phần sau dấu chấm nhị phân. Cơ số ở đây là 2 và phần định trị có dạng 1.F
6.2.2. Dạng chính xác gấp đôi
Số dấu chấm động được lưu dưới dạng 64 bit:
63 62 53 52 0
S E F
Nguyễn Trung Đồng – Tel 0983 410 866
Chương III. Kiến trúc Trung tâm xử lý (CPU)