C03_HeThongSo - WordPress.com

Download Report

Transcript C03_HeThongSo - WordPress.com

Chương 3:
HỆ THỐNG SỐ ĐẾM
Number Systems
Nội Dung
1
1. Giới thiệu
2. Biểu diễn thông tin trong máy tính điện tử
3. Chuyển một hệ thống số từ cơ số này sang cơ số khác
4. Câu hỏi và Bài tập
Giới thiệu
2
•
•
Khái niệm: Hệ thống số đếm (hệ đếm) là 1 tập các ký hiệu, qui
tắc được sử dụng để biểu diễn và tính toán các giá trị số.
Ví dụ: Số lượng sinh viên trong lớp, số lượng môn học của mỗi
sinh viên, hoặc sử dụng các số để miêu tả điểm cho mội sinh
viên….
Phân loại:
- Hệ đếm không theo vị trí của ký số (None–positional
number system).
- Hệ đếm theo vị trí của ký số (Positional number
system):
Biểu diễn thông tin trong máy tính điện tử
3
Hệ đếm không theo vị trí của ký số (None–positional
number system):
•
•
•
Là hệ đếm mà trong đó giá trị số lượng của chữ số không phụ thuộc
vào vị trí của nó đứng trong con số cụ thể
Hệ thống số La mã, sử dụng các ký hiệu, ví dụ: I , II , III , IIII, …
Khó thực hiện các phép toán trong hệ thống số.
Hệ đếm theo vị trí của ký số (Positional number system):
•
•
•
•
Hệ thống số Ả rập, chỉ sử dụng một vài ký hiệu số, ví dụ: 1, 2, 5,
12 , 21.
Hệ thập phân là một hệ đếm theo vị trí
Giá trị của số tùy thuộc vào:
− Giá trị của chính chữ số đó
− Vị trí của chữ số
Có cơ số của hệ thống số (cơ số=số chữ số trong hệ thống số,
ví dụ: hệ 10 có 10 chữ số từ 0->9).
Biểu diễn thông tin trong máy tính điện tử
Hệ đếm theo vị trí bao gồm:
•
•
•
•
Hệ đếm thập phân (Decimal system – b=10, cơ số 10)
Hệ đếm nhị phân (Binary system – b=2, cơ số 2)
Hệ đếm bát phân (Octal system - b=8 cơ số 8)
Hệ đếm thập lục phân (Hexa-decimal system - b=16, cơ số 16)
5
Biểu diễn số trong các hệ đếm
6
Biểu diễn số trong các hệ đếm
7
Hệ đếm thập phân (Decimal system)
8
• Là một trong các phát minh của người Ả Rập Cổ.
• Là một hệ thống số được sử dụng trong đời sống hàng ngày.
• Hệ đếm thập phân bao gồm 10 ký số từ 0 đến 9, ký
hiệu : 0, 1, 2, 3, 4, 5, 6, 7, 8, 9.
• Mỗi vị trí của ký số được xác định bằng lũy thừa của
cơ số 10.
Ví dụ 1:
Hệ đếm thập phân (Decimal system)
9
Ví dụ 2: 123
123 = 1 * 102 + 2 * 101 + 3*100
= 100 + 20 + 3
Ví dụ 3: 5246
5246 = 5 * 103+ 2 *102+ 4 * 101+ 6 * 100
= 5 * 1000 + 2 * 100 + 4 * 10 + 6 * 1
= 5000 + 200 + 40 + 6
Ví dụ 4: 254.68
254.68 = 2 * 102+ 5 * 101+ 4 * 100+ 6 * 10-1+ 8 * 10-2
Hệ đếm nhị phân (Binary system)
10
•
•
•
•
Là hệ đếm với cơ số b=2.
Là hệ đếm đơn giản nhất với 2 chữ số là 0 và 1. Mỗi chữ số
nhị phân gọi là BIT (BInary digiT).
Hệ nhị phân dùng để biểu diễn thông tin trong máy
tính.
Mỗi vị trí của ký số được xác định bằng lũy thừa của
cơ số 2.
Hệ đếm nhị phân (Binary system)
11
Ví dụ 1: Số 11101.11(2) sẽ tương đương với giá trị thập
phân là :
Số nhị phân : 1 1
1
0
1.
1
1
Số vị trí :
4
3
2 1
0
-1
-2
Trị vị trí :
24 23 22 21
20
2-1
2-2
Hệ 10 là :
16 8
4 2
1
0.5 0.25
Như vậy:
11101.11(2) =1x16+1x8+1x4+0x2+1x1+1x0.5+1x0.25
= 29.75(10)
Ví dụ 2: 10101(2) ?
10101(2)
= 1x24+ 0x23+ 1x22+ 0x21+ 1x20
= 16 + 0 + 4 + 0 + 1 = 21(10)
Hệ đếm nhị phân (Binary system)
12
Hệ Nhị Phân
Hệ Thập Phân
000
0
001
1
010
2
011
3
100
4
101
5
110
6
111
7
3-bit số nhị phân với giá trị thập phân tương ứng
Hệ đếm bát phân (Octal system)
13
•
Là hệ đếm với b = 8 = 23. Trong hệ bát phân, trị vị trí là lũy
thừa của 8.
• Khi chỉ có 8 số, dùng tập hợp 3 bit có thể biểu diễn 8 trị
khác nhau : 000, 001, 010, 011, 100, 101, 110, 111. Các trị
này tương đương với 8 trị trong hệ thập phân là 0, 1, 2, 3, 4,
5, 6, 7.
Ví dụ 1:
235.64(8) = 2x82 + 3x81 + 5x80+ 6x8-1+ 4x8-2
= 157.8125(10)
Ví dụ 2: 2057(8) = ?
2057(8) = 2x83 + 0x82 + 5x81+ 7x80
= 1024 + 0 + 40 + 7
= 1071(10)
Hệ đếm bát phân (Octal system)
14
3-bit số nhị phân với giá trị thập phân, bát phân tương ứng
Hệ thập lục phân (Hexa-decimal system)
15
• Hệ đếm thập lục phân là hệ cơ sơ b=16 = 24, tương đương với
tập hợp 4 chữ số nhị phân (4 bit).
• Khi thể hiện ở dạng hexa-decimal, ta có 16 ký tự gồm 10 ký số
từ 0 đến 9, và 6 chữ ký tự A, B, C, D, E, F biểu diễn các giá trị
số tương ứng là 10, 11, 12, 13, 14, 15.
• Mỗi vị trí của ký số được xác định bởi lũy thừa của cơ số
16.
Ví dụ:
34F5C(16) = 3x164 + 4x163 + 15x162+ 5x161+ 12x160
= 216294(10)
Ghi chú: một số ngôn ngữ lập trình qui định viết số hexa phải có
chữ H ở cuối chữ số.
Ví dụ: Số 15 viết là FH.
Hệ thập lục phân (Hexa-decimal system)
16
Chuyển từ cơ số b (khác 10) sang hệ thập phân
17
Bước 1: Xác định giá trị vị trí của mỗi ký số từ phải sang trái.
Bước 2: Nhân giá trị của ký số với lũy thừa của cơ số tại vị trí
tương ứng.
Bước 3: Tính tổng của các phép tính nhân trong bước 2. Tổng cuối
cùng sẽ là giá trị của hệ thập phân.
Ví dụ 1: 11001(2) = ?(10)
= 1x24 + 1x23 +0x22 + 0x21 + 1x20
=16 + 8 + 0 + 0 +1
= 25(10)
Ví dụ 2: 4706(8) = ?(10)
= 4x83 + 7x82 + 0x81 + 6x80
= 2048 + 448 + 0 + 6
= 2502
Kết quả: 4706(8) = 2502(10)
Chuyển từ cơ số b (khác 10) sang hệ thập phân
18
Bài tập 1: 1AC(16) = ?(10)
Bài tập 2: 4052(7) = ?(10)
Chuyển một số nguyên từ hệ thập phân sang hệ cơ số b
19
Tổng quát:
• Lấy số nguyên thập phân N(10) lần lượt chia cho cơ số b cho đến khi
thương số bằng 0.
• Kết quả số chuyển đổi của N(b) là các số dư trong phép chia được viết ra
theo thứ tự ngược lại.
Ví dụ:
Số 12(10) = ?(2). Dùng phép chia cho 2 liên tiếp, ta có một loạt các số dư như
Kết quả: 1210 = 1100(2)
Chuyển phần thập phân từ hệ thập phân sang hệ cơ số b
Tổng quát:
• Lấy phần thập phân của N(10) lần lượt nhân với cơ số b cho đến
khi phần thập phân của tích số bằng 0.
• Kết quả số chuyển đổi N(b) là các số phần nguyên trong phép nhân
viết ra theo thứ tự tính toán.
Ví dụ: 0. 6875(10) = ? (2)
0. 6875 * 2
= 1 . 375
0. 375 * 2
= 0 . 75
0. 75 * 2 = 1 . 5
0. 5 * 2 = 1 . 0
Kết quả: 0.6875 (10) = 0.1011(2)
20
Chuyển phần thập phân từ hệ thập phân sang hệ cơ số b
21
Bài tập: 0.375(10) = ?(2)
Chuyển từ cơ số khác 10 sang cơ số khác 10
22
Bước 1: Chuyển số gốc sang hệ thập phân (hệ 10).
Bước 2: Chuyển số hệ thập phân thu được sang cơ số mới.
Ví dụ 1: 545(6) = ? (4)
Bước 1: Chuyển từ hệ 6 sang hệ 10
545
= 5 x 62 +4 x 61 +5 x 60
= 5 x 36 +4 x 6 +5 x 1
= 180 + 24 +5
= 209(10)
Bước 2: Chuyển 209(10) sang hệ 4:
Kết quả: 545(6) = 209(10) = 3101(4)
Chuyển từ cơ số khác 10 sang cơ số khác 10
23
Ví dụ 2: 101110(2) = ? (8)
Bước 1: Chuyển từ hệ 2 sang hệ 10
101110(2) = 1x25 + 0x24 + 1x23 + 1x22 + 1x21 + 0x20
= 32 + 0 + 8 + 4 + 2 + 0
= 46(10)
Bước 2: Chuyển 46(10) sang hệ 8
Kết quả: 101110(2) = 46(10) = 56(8)
Chuyển từ cơ số khác 10 sang cơ số khác 10
24
Bài tập: 11010011(2) = ? (16)
Chuyển nhanh từ hệ nhị phân sang hệ bát phân
25
Bước 1: Chia số nhị phân thành các nhóm, mỗi nhóm gồm ba chữ số
(bắt đầu từ phải qua).
Bước 2: Chuyển mỗi nhóm 3 chữ số thành 1 số hệ bát phân.
Ví dụ: Chuyển 101110(2) = ? (8)
Bước 1: Chia số nhị phân thành các nhóm: 101 và 110
Bước 2: Chuyển mỗi nhóm thành một số bát phân
101(2) = 1 x 22 +0 x 21 +1 x 20
=4+0+1
= 5(8)
110(2) = 1 x 22 +1 x 21 +0 x 20
= 4 +2+0
= 6(8)
Kết quả: 101110(2) = 56(8)
Chuyển nhanh từ hệ nhị phân sang hệ bát phân
26
Bài tập 1: Chuyển 1101010(2) = ? (8)
Bài tập 2: Chuyển 11010011(2) = ? (8)
Chuyển nhanh từ hệ bát phân sang hệ nhị phân
27
Bước 1: Chuyển mỗi số bát phân thành 3 số nhị phân.
Bước 2: Kết nối tất cả các nhóm nhị phân (mỗi nhóm có 3 số)
thành một số nhị phân.
Ví dụ 1: Chuyển 562(8) = ? (2)
Bước 1: Chuyển mỗi số bát phân thành 3 số nhị phân
5(8) = 101(2)
6(8) = 110(2)
2(8) = 010(2)
Bước 2: Kết nối các nhóm nhị phân.
562(8) = 101 110
010
5
6
2
Kết quả 562(8) = 101110010(2)
Chuyển nhanh từ hệ bát phân sang hệ nhị phân
28
Ví dụ 2: Chuyển 6751(8) = ? (2)
Bước 1: Chuyển mỗi số bát phân thành 3 số nhị phân
6(8) = 110(2)
7(8) = 111(2)
5(8) = 101(2)
1(8) = 001(2)
Bước 2: Kết nối các nhóm nhị phân.
6751(8) = 110 111 101 001
6
7
5
1
Kết quả: 6751(8) = 110111101001(2)
Chuyển nhanh từ hệ nhị phân sang hệ thập lục phân
29
Bước 1: Chia số nhị phân thành các nhóm có bốn chữ số.
Bước 2: Chuyển mỗi nhóm 4 chữ số thành 1 số hệ thập lục phân.
Ví dụ 1: Chuyển 11010011(2) = ? (16)
Bước 1: Chia số nhị phân thành các nhóm bốn chữ số.
1101
0011
Bước 2: Chuyển mỗi nhóm 4 số nhị phân thành một số thập lục phân
1101(2) = 1x23 + 1x22 + 0x21 + 1x20
=8+4+0+1
= 13(10)
= D(16)
0011(2) = 0x23 + 0x22 + 1x21 + 1x20
= 0 + 0 +2+1
= 3(16)
Kết quả: 11010011(2) = D3(16)
Chuyển nhanh từ hệ nhị phân sang hệ thập lục phân
30
Bài tập: Chuyển 10110101100(2) = ? (16)
Chuyển nhanh từ hệ thập lục phân thành hệ nhị phân
31
• Bước 1: Chuyển mỗi ký số thập lục phân sang số thập phân, mỗi số
thập phân chuyển thành số nhị phân gồm 4 ký số.
• Bước 2: Kết nối tất cả các nhóm nhị phân (mỗi nhóm có 4 số) thành
một số nhị phân.
Ví dụ 1: Chuyển 2AB(16) = ? (2)
Bước 1:
2(16) = 2(10) = 0010(2)
A(16) = 10(10) = 1010(2)
B(16) = 11(10) = 1011(2)
Bước 2: Kết nối các nhóm nhị phân.
2AB(16) = 0010 1010 1011
2
A
B
Kết quả: 2AB(16) = 001010101011(2)
Chuyển nhanh từ hệ thập lục phân thành hệ nhị phân
32
Bài tập: Chuyển ABC(16) = ? (2)
Phân số - Fractional Numbers
• Trong hệ thống nhị phân, các phần thập phân được định dạng theo
cách chung như hệ thống số thập phân.
• Ví dụ, trong hệ thống số thập phân
0.235 = (2 x 10-1) + (3 x 10-2) + 5 x 10-3)
Và 68.53 = (6 x 101) + (8 x 100) + (5 x 10-1) +(3 x 10-2)
Tương tự, trong hệ thống số nhị phân
0.101 = (1 x 2-1) + (0 x 2-2) + (1 x 2-3)
và 10.01 = (1 x 21) + (0 x 2-1) + (1 x 2-2)
Tổng quát, một số trong hệ thống số với cơ số b được viết như:
anan-1an-2…a1a0a-1a-2…am
và có thể được thông dịch thành
an.bn+an-1.bn-1+an-2.bn-2+…+a1.b1+a0.b0+a-1.b-1+a-2.b-2+…+a-m.b-m
33
Phân số - Fractional Numbers
Ví dụ : Chuyển số 110.101(2) sang hệ 10
110.101(2) = 1 x 22 +1 x 21 +0 x 20 +1 x 2-1 + 0 x 2-2 +1 x 2-3
= 4 + 2 + 0 + 0.5 + 0 + 0.125
= 6 + 0.5 +0.125
= 6.625(10)
34
Câu hỏi và bài tập
1. Hãy đổi các số thập phân sau đây ra hệ nhị phân:
5, 9, 17, 27, 6625.
2. Hãy đổi các số nhị phận sau đây ra hệ thập phân:
11, 111, 1001, 1101, 1011110.
3. Hãy đổi các số nhị phân sau đây ra hệ 16:
11001110101, 1010111000101, 11110111011100110.
4. Hãy đổi các số hệ 16 sau đây ra hệ nhị phân:
3F8, 35AF, A45
5. Hãy chuyển số 127.54(10) sang hệ 8.
6. Hãy chuyển số 2B.C4(16) sang hệ 10
35