CHƯƠNG 2

HỆ THỐNG SỐ - NUMBER SYSTEM HỆ THỐNG SỐ - NUMBER SYSTEM

Nội Dung

3.1. Biểu diễn thông tin trong máy tính điện

tử

3.2. Chuyển một hệ thống số từ cơ số này

sang cơ số khác

3.3. Câu hỏi và Bài tập

1

Biểu diễn thông tin trong máy tính điện tử

• Biểu diễn số trong các hệ đếm • Hệ đếm thập phân (Decimal system, b=10) • Hệ đếm nhị phân (Binary system, b=2) • Hệ đếm bát phân (Octal system, b=8) • Hệ đếm thập lục phân (Hexa-decimal system,

b=16)

2

Biểu diễn số trong các hệ đếm

3

• Hệ đếm là tập hợp các ký hiệu và qui tắc sử dụng tập ký hiệu đó để biểu diễn và xác định các giá trị các số. Mỗi hệ đếm có một số ký số (digits) hữu hạn.

• Tổng số ký số của mỗi hệ đếm gọi là cơ số (base hay radix), ký hiệu

là b.

• Hệ đếm cơ số b (b ≥ 2, b là số nguyên dương) mang tính chất sau : • Có b ký số để thể hiện giá trị số. Ký số nhỏ nhất là 0 và lớn nhất

là b-1.

• Giá trị vị trí thứ n trong một số của hệ đếm bằng cơ số b lũy

thừa n: bn

• Số N(b) trong hệ đếm cơ số (b) được biểu diễn bởi:

N(b)=anan-1an-2…a1a0a-1a-2…am trong đó, số N(b) có n+1 ký số biểu diễn cho phần nguyên và m ký số là biểu diễn cho phần b_phân, và có giá trị là:

+a-2.b-2+…+a-m.b-m

N(b)=an.bn+an-1.bn-1+an-2.bn-2+…+a1.b1+a0.b0+a-1.b-1

Biểu diễn số trong các hệ đếm

3

Biểu diễn số trong các hệ đếm

3

Hệ đếm thập phân (Decimal system)

• Là một trong các phát minh của người Ả Rập Cổ, bao gồm 10 ký số theo ký hiệu sau: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9

• Qui tắc tính giá trị của hệ đếm này là mỗi đơn vị ở một hàng bất kỳ có giá trị bằng 10 đơn vị của hàng kế cận bên phải.

4

Hệ đếm thập phân (Decimal system)

4

Ví dụ 1: 123 = 1 * 102 + 2 * 101 + 3*100 5246 = 5 * 103+ 2 *102+ 4 * 101+ 6 * 100 = 5 * 1000 + 2 * 100 + 4 * 10 + 6 * 1 = 5000 + 200 + 40 + 6 Ví dụ 2: 254.68 = 2 * 102+ 5 * 101+ 4 * 100+ 6 * 10-1+ 8 * 10-2

Hệ đếm nhị phân (Binary system)

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.

5

Hệ đếm nhị phân (Binary system)

5

Ví dụ: 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) 10101(2) = 1x24+ 0x23+ 1x22+ 0x21+ 1x20 = 16 + 0 + 4 + 0 + 1 = 21(10)

Hệ đếm nhị phân (Binary system)

6

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

Hệ đếm bát phân (Octal system)

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.

• Nếu dùng 1 tập hợp 3 bit thì 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.

7

Ví dụ: 235.64(8) = 2x82 + 3x81 + 5x80+ 6x8-1+ 4x8-2 = 157.8125(10)

Hệ đếm bát phân (Octal system)

7

Hệ thập lục phân (Hexa-decimal system)

• 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 chữ số từ 0 đến 9, và 6 chữ in 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. Với hệ thập lục phân, trị vị trí là lũy thừa của 16.

8

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)

8

Chuyển từ cơ số b (khác 10) sang hệ thập phân

10

= 2502

Bước 1: Xác định giá trị vị trí của mỗi ký số Bước 2: Nhân giá trị vị trí với ký số của cột tương ứng. Bước 3: Cộng kết quả 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 Kết quả: 4706(8) = 2502(10)

Chuyển từ cơ số b (khác 10) sang hệ thập phân

11

= 1409

Ví dụ 3: 1AC(16) = ?(10) Giải 1AC(16) = 1x162 + Ax161 + Cx160 = 1x256 + 10x16 + 12x1 = 256 + 160 +12 = 428 Kết quả: 1AC(16) = 428(10) Ví dụ 4: 4052(7) = ?(10) Giải 4052(7) = 4x73 + 0x72 + 5x71 + 2x70 = 1372 + 0 + 35 + 2 Kết quả: 4052(7) = 1409(10)

Chuyển một số nguyên từ hệ thập phân sang hệ cơ số b

12

Tổng quát: •

Lấy số nguyên thập phân N(10) lần lượt chia cho b cho đến khi thương số bằng 0. Kết quả số chuyển đổi N(b) là các dư số trong phép chia 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

13

Tổng quát: • Lấy phần thập phân N(10) lần lượt nhân với 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.

= 1 . 375 = 0 . 75 = 1 . 5 = 1 . 0

Ví dụ : 0. 6875(10) = ? (2) 0. 6875 * 2 0. 375 * 2 0. 75 * 2 0. 5 * 2 Kết quả: 0.6875 (10) = 0.1011(2) Bài tập: 456.375(10) = ?(2)

Chuyển từ cơ số khác 10 sang cơ số khác 10

14

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 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 Bước 2: Chuyển 209(10) sang hệ 4 Kết quả: 545(6) = 209(10) = 3101(4) 101110(2) = ? (8) 11010011(2) = ? (16)

Chuyển nhanh từ hệ nhị phân sang hệ bát phân

15

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)

= 4 +2+0 = 6(8)

110(2) = 1 x 22 +1 x 21 +0 x 20 Kết quả: 101110(2) = 56(8) 1101010(2) = ?(8) 11010011(2) = ? (8)

Chuyển nhanh từ hệ bát phân sang hệ nhị phân

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)

562(8) = 101 110

Bước 2: Kết nối các nhóm nhị phân. 010 5 6 2 Kết quả 562(8) = 101110010(2)

16

Chuyển 6751(8) = ? (2)

Chuyển nhanh từ hệ nhị phân sang hệ thập lục phân

17

1101

= 8 + 4 + 0 + 1 = 13(16) = D(16)

= 0 + 0 +2+1 = 3(16)

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ụ: Chuyển 11010011(2) = ? (16) Bước 1: Chia số nhị phân thành các nhóm bốn chữ số. 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) = 1 x 23 + 1 x 22 +0 x 21 +1 x 20 0011(2) = 0 x 23 +0 x 22 +1 x 21 +0 x 20 Kết quả: 11010011(2) = D3(16)

Chuyển 10110101100(2) = ?(16)

Chuyển nhanh từ hệ thập lục phân thành hệ nhị phân

18

• 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

Bước 2: Kết nối các nhóm nhị phân. 2AB(16) = 0010 1010 1011 2 A Kết quả 2AB(16) = 001010101011(2)

Chuyển ABC(16) = ? (2)

Phân số - Fractional Numbers

19

• 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

Phân số

20

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)

Bài tập

Chuyển số 127.54(10) sang hệ 8 Chuyển số 2B.C4(16) sang hệ 10