Bài giảng Kiến trúc máy tính (Computer Architecture) - Chương 3: Biểu diễn số học trong máy tính cung cấp cho học viên những kiến thức về mã hóa và lưu trữ dữ liệu trong máy tính, các hệ đếm liên quan đến máy tính, biểu diễn số nguyên, biểu diễn số dấu phẩy động, biểu diễn ký tự,... Mời các bạn cùng tham khảo chi tiết nội dung bài giảng!
Trang 1Chương 3
Biểu diễn số học trong
máy tính
Trang 2Nội dung
Mã hóa và lưu trữ dữ liệu trong máy tính
Các hệ đếm liên quan đến máy tính
Biểu diễn số nguyên
Biểu diễn số dấu phẩy động
Biểu diễn ký tự
Trang 33.1 Mã hoá và lưu trữ dữ liệu trong máy tính
1 Nguyên tắc chung về mã hoá dữ liệu:
Mọi thông tin đưa vào máy tính đều được mã hoá
thành dữ liệu nhị phân
Độ 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
Trang 41 Nguyên tắc chung về mã hoá dữ liệu (tiếp)
Mã hóa theo các chuẩn quy ước
Dữ liệu số:
Số nguyên: mã hóa theo một số chuẩn
Số thực: mã hóa bằng số dấu phẩy động
Dữ liệu ký tự:
Mã hóa theo bộ mã ký tự
Ví dụ: bộ mã ASCII (American Stadards Code for
Information) và bộ mã Unicode
Trang 52 Thứ tự lưu trữ các byte trong bộ nhớ chính
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
Phải biết thứ tự lưu trữ các byte trong bộ nhớ chính đối 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 có ý nghĩa thấp được lưu trữ ở ngăn nhớ có địa chỉ nhỏ hơn, byte có ý nghĩa cao được lưu trữ ở ngăn nhớ có địa chỉ lớn hơn
Lưu trữ đầu to (Big-endian): Byte có ý nghĩa cao được lưu trữ ở ngăn nhớ có địa chỉ nhỏ hơn, byte có ý nghĩa thấp được lưu trữ ở ngăn nhớ có địa chỉ lớn hơn.
Trang 6Ví dụ lưu trữ dữ liệu 32-bit
Trang 73.2 Các hệ đếm liên quan đến máy tính
Hệ thập phân
Hệ nhị phân
Hệ thập lục phân
Trang 81 Biểu diễn số tổng quát
Nguyên tắc chung của biểu diễn số:
Dùng một số hữu hạn các ký hiệu
Số ký hiệu được dùng gọi là cơ số của hệ, ký hiệu
là r
Ghép với nhau theo qui ước về vị trí
Trọng số của hệ là r i, với i là số nguyên dương
hoặc âm
Trang 91 Biểu diễn số tổng quát (tiếp)
Biểu diễn số A trong hệ đếm cơ số r:
Trang 13472,38 = 4.102 + 7.101 + 2.100 + 3.10-1 + 8.10-2
Trang 143 Hệ nhị phân (Binary)
Cơ số r = 2
2 chữ số: 0, 1
Chữ số nhị phân gọi là bit
Bit là đơn vị thông tin nhỏ nhất
Dùng n bit có thể biểu diễn được 2 n giá trị khác
nhau:
00 000 = 0
11 111 = 2n – 1
Ví dụ: Dùng 2 bit 4 giá trị khác nhau: 00, 01, 10, 11
Dùng 8 bit biểu diễn được bao nhiêu giá trị khác nhau?
Trang 16101, 112 = (1.22 + 0.21 + 1.20 + 1.2-1 + 1.2-2)10 = 5,7510
Trang 17Nhận xét
− Quen dùng, dễ nhận biết
− Cách biểu diễn gọn
− Khả năng biểu diễn của hệ lớn
− Mất ít thời gian đọc và viết
− Không quen dùng, khó nhận biết
− Cách biểu diễn cồng kềnh
− Khả năng biểu diễn của hệ nhỏ
− Tốn nhiều thời gian đọc và viết
− Thể hiện bằng thiết bị kỹ thuật
khó khăn và phức tạp −rất dễThể hiện bằng thiết bị kỹ thuật
Trang 194 Hệ thập lục phân (tiếp)
Biểu diễn số nhị phân trong hệ Hexa:
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
Trang 205 Chuyển đổi giữa các hệ đếm
a Chuyển đổi từ hệ cơ số bất kỳ sang hệ cơ số 10
b Chuyển đổi từ hệ cơ số 10 sang các hệ khác
c Chuyển đổi giữa hệ nhị phân và hệ Hexa
Trang 21a Chuyển đổi từ hệ cơ số bất kỳ sang hệ
Trang 22b Chuyển đổi từ hệ cơ số 10 sang các hệ khác
Chuyển đổi phần nguyên
Chuyển đổi phần lẻ
Trang 23Chuyển đổi phần nguyên
Lấy phần nguyên chia lặp cho cơ số mới
Thực hiện cho tới khi kết quả của phép chia bằng 0 thì dừng
Lấy số dư sau mỗi lần chia, viết đảo trật tự là kết quả cần tìm
Trang 24Ví dụ
5910 = ( ? )2
5910 = ( ? )16
Trang 26Chuyển đổi phần lẻ
Lấy phần lẻ nhân lặp lại cho cơ số mới
Phép nhân dừng lại khi phần lẻ của tích tạo thành bằng không hoặc số nhị phân tạo thành đạt đến một
độ chính xác nhất định thì thôi
Lấy phần nguyên thu được sau mỗi lần nhân, viết
tuần tự là kết quả cần tìm
Trang 27Ví dụ
0,37510 = ( ? )2
0,210 = ( ? )2
Trang 28Ví dụ (tiếp)
0,375 x 2 = 0,75 phần nguyên là 0 0,75 x 2 = 1,5 phần nguyên là 1 0,5 x 2 = 1,0 phần nguyên là 1
Kết quả: 0,37510 = 0,0112
Trang 313 Giá trị thập phân lớn nhất của số nhị phân 8
bit, 16 bit là bao nhiêu?
4 Đổi các số nhị phân trong bài 2 sang số
Hexa
5 Đổi các số Hexa sau sang số thập phân: 1A,
7FF
(Lưu ý: Số nhị phân biểu diễn cho một số thập phân tương ứng
được gọi là mã nhị phân trực tiếp (straight binary code))
Trang 326 Các phép tính số học và logic trong hệ nhị phân
Các phép tính số học : Cộng, trừ, nhân, chia
Các phép tính logic: NOT, AND, OR, XOR, NOR
Trang 3800000110110
Trang 39Phép chia
Được thực hiện thông qua phép trừ,
phép cộng và phép dịch bit
Trang 40Ví dụ
40
Trang 41Các phép toán logic cơ bản
Trang 42Phép Phủ định (NOT)
Phép phủ định đối với một biến logic A, còn gọi là
phép đảo (NOT), là khi tác động tới A, A sẽ nhận giá trị đảo của giá trị có trước khi tác động
Ký hiệu phép đảo:
Trang 43Phép Phủ định của số nhị
phân nhiều bit
Trang 44 Kết quả được gọi là một tích
Khi tất cả các biến thừa số bằng 1
Trang 463.3 Biểu diễn số nguyên
Số nguyên không dấu (Unsigned Interger)
Số nguyên có dấu (Signed Interger)
Trang 471 Biểu diễn số nguyên không dấu
Dùng n bit để biểu diễn số nguyên không
a A
Trang 48Với n = 8 bit
Trang 49Với n = 16 bit, 32 bit, 64 bit
Trang 50A = 41 = 32 + 8 + 1 = 25 + 23 + 20
41 = 0010 1001
B = 150 = 128 + 16 + 4 + 2 = 27 + 24 + 22 + 21
150 = 1001 0110
Trang 51Các ví dụ (tiếp)
Trang 52Bài tập áp dụng
1 Biểu diễn các số nguyên không dấu sau đây
sang số nhị phân 8 bit:
132, 129, 234, 261
2 Cho các số nguyên không dấu được biểu
diễn bằng số nhị phân 8 bit, hãy xác định giá trị của chúng:
1101 1010
1011 1011
Trang 532 Biểu diễn số nguyên có dấu
Quy tắc dấu và trị tuyệt đối
Mã bù một
Mã bù hai
Trang 54a Quy tắc dấu và trị tuyệt đối
n bit:
A 2
0
2
1 (n-1)
Trang 55a Quy tắc dấu và trị tuyệt đối (tiếp)
Có hai cách biểu diễn số 0 là:
Trang 57b Mã bù một
Số bù một và số bù hai:
Trang 58Số bù một và số bù hai (tiếp)
Trang 59Quy tắc tìm số bù một và số bù hai
=> Phép đảo dấu cả số nhị phân A được thực hiện bằng lấy
bù hai của số A
Trang 60Biểu diễn số nguyên có dấu theo mã bù một
Với A là số âm: Mã bù một của A được biểu diễn
bằng số bù một của số dương tương ứng
Trang 61Biểu diễn số nguyên có dấu theo mã bù một
Có hai cách biểu diễn số 0 là:
0000 0000 (+0)
1111 1111 (-0)
Giá trị của A được xác định như sau:
Dải giá trị biểu diễn: - (2n-1 – 1) đến + (2n-1 – 1)
n
a
Trang 63Các ví dụ (tiếp)
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 theo mã bù một dưới đây:
P = 0110 0010
Q = 1101 1011Giải:
P = 0110 0010 = 26 + 25 + 21 = 64+32+2 = +98
Q = 1101 1011 = -(27 – 1) + 26 + 24 + 23 +21 + 20
= -127+64+16+8+2+1 = -36
Trang 64c Biểu diễn số nguyên có dấu theo mã bù hai
Trang 65 Chỉ có một cách biểu diễn số 0 là:
0000 …0000
Biểu diễn số nguyên có dấu theo mã bù hai
Trang 66Với n = 8 bit
Trang 67Với n = 16 bit, 32 bit, 64 bit
Trang 68Các ví dụ
Ví dụ 1: Biểu diễn các số nguyên có dấu sau
đây theo qui tắc mã bù hai:
A = + 58; B = -80Giải:
Trang 69Các ví dụ (tiếp)
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 theo mã bù hai dưới đây:
P = 0110 0010
Q = 1101 1011Giải:
P = 0110 0010 = 26 + 25 + 21 = 64+32+2 = +98
Q = 1101 1011 = -27 + 26 + 24 + 23 +21 + 20
= -128+64+16+8+2+1 = -37
Trang 71Chuyển đổi giữa các thanh ghi
có độ dài khác nhau
Trang 72Bài tập áp dụng
1 Biểu diễn các số nguyên sau đây theo các quy tắc: dấu và trị tuyệt đối, mã bù một, mã bù hai
sử dụng thanh ghi 8 bit: + 55, -76
2 Xác định giá trị của các số nguyên có dấu được biểu diễn theo mã nhị phân:
A = 0110 1011
B = 1101 1001
Trang 733 Biểu diễn số thập phân theo mã
BCD
Binary Coded Decimal
Dùng 4 bit để mã hóa cho các chữ số thập phân từ 0 đến 9:
Trang 774 Thực hiện các phép toán số học đối với số nguyên
Arithmetic and Logic Unit (ALU)
Trang 784 Thực hiện các phép toán số học
đối với số nguyên
a Phép cộng số nguyên không dấu
Trang 794 Thực hiện các phép toán số học
đối với số nguyên
a Phép cộng số nguyên không dấu
Trang 80Nguyên tắc cộng số nguyên không dấu
Trang 81Ví dụ cộng số nguyên không dấu
Trang 82b Cộng số nguyên có dấu
Thường thực hiện phép cộng theo mã bù hai:
Các số hạng biểu diễn ở dạng mã bù hai
Cộng cả bit dấu
Trang 83Nguyên tắc cộng số nguyên có dấu
Trang 84Ví dụ cộng số nguyên có dấu không tràn
Trang 85Ví dụ cộng số nguyên có dấu bị tràn
Trang 86d Nhân số nguyên không dấu
Trang 87Nhân số nguyên không dấu (tiếp)
Trang 88Bộ nhân số nguyên không dấu
Trang 89Lưu đồ nhân số nguyên không dấu
Trang 90Ví dụ nhân số nguyên không dấu
Trang 91e Nhân số nguyên có dấu
Bước 1 Chuyển đổi số bị nhân và số nhân thành số
dương tương ứng
Bước 2 Nhân hai số dương bằng giải thuật nhân số
nguyên không dấu, được tích của hai số dương
Bước 3 Hiệu chỉnh dấu của tích:
Nếu hai thừa số ban đầu cùng dấu thì giữ nguyên kết quả ở bước 2.
Nếu hai thừa số ban đầu là khác dấu thì đảo dấu kết quả
của bước 2.
Trang 92f Chia số nguyên không dấu
Trang 93Bộ chia số nguyên không dấu
Trang 94Lưu đồ chia số nguyên không dấu
Trang 100g Chia số nguyên có dấu
Trang 1022 Số dấu phẩy động
Số dấu phẩy động (Floating Point Number)
Tổng quát: một số thực X được biểu diễn
theo kiểu số dấu phẩy động như sau:
Trang 1033 Chuẩn IEEE 754
IEEE (Institute of Electrical and Electronics
Engineering): Viện công nghệ Điện và Điện Tử
Cơ số R = 2
3 dạng số dấy phẩy động cơ bản:
Số có độ chính xác đơn (Single): 32 bit
Số có độ chính xác kép (Double): 64 bit
Số có độ chính xác mở rộng (Quarduple): 128 bit
Trang 104 ne là độ dài bit của trường số mũ e
ví dụ: độ dài của trường e là 8 bit B = 2 8-1 -1 = 127
Trang 105Định dạng của các dạng biểu diễn:
Trang 107Các quy ước đặc biệt
Trang 108Ví dụ 1
Trang 109Ví dụ 2
Trang 110Ví dụ 3
Giải:
Trang 111Bài tập áp dụng
Biểu diễn các số thực sau đây về dạng số dấu
phẩy động IEEE 754 32 bit:
X = -27,0625
Y = 24,2
Trang 112Bài tập về nhà
Tìm hiểu về tính toán số học với số dấu
phẩy động.
Tài liệu: Mục 9.5 trong giáo trình Stallings,
William Computer organization and
2010, 8th edition.
112
Trang 1133.5 Biểu diễn ký tự
Bộ mã ASCII (American Standard Code for Information Interchange)
Bộ mã Unicode
Trang 118Bài tập
1 Tìm hiểu bộ mã ASCII và Unicode
2 Biểu diễn các số sau bằng thanh ghi 8 bit theo: qui tắc dấu và trị tuyệt đối, mã bù 1, mã bù 2
3 Biểu diễn các số sau sang số dấu phẩy động
theo tiêu chuẩn IEEE 754 32 bit, 64 bit
Trang 119Bài tập
4 Tính giá trị thập phân của các số nguyên có
dấu được biểu diễn theo mã nhị phân
a 0101 1001 c 1001 1100
b 1100 1111 d 1010 0100
5 Cho số dấu phẩy động biểu diễn theo tiêu
chuẩn IEEE 32 bit: C2828000H Hãy tính giá
trị thập phân của số đã cho?
Trang 120Hết chương 3