Lý thuyết


2. Hệ đếm

2.1. Khái niệm

Hệ đếm là tập hợp các phương pháp gọi và biễu diễn các con số bằng các kí hiệu có giá trị số lượng xác định định gọi là các chữ số. Nói cách khác các chữ số cơ bản của một hệ đếm là các chữ số được sử dụng để biễu diễn mọi số trong hệ đếm đó. Hiện nay có một số hệ số cơ bản được sử dụng trong kĩ thuật lập trình như: hệ nhị phân (hệ 2), hệ bát phân (hệ 8), hệ thập phân (hệ 10) và hệ thập lục phân (hệ 16).

2**.2. Biễu diễn các hệ đếm**

Để biểu diễn một số của một hệ đếm, tuỳ thuộc vào ngôn ngữ lập trình hoặc trình biên dịch mà có thể có cách biểu diễn khác. Cách biểu diễn phổ biến là dùng chỉ số đặt ở góc dưới bên phải số đó.

Ví dụ:

${0110_2}$ biểu diễn số nhị phân.

$035_8$   biểu diễn số bát phân.

$12B_{16}$  biểu diễn số thập lục phân

Đối với hệ thập phân ta có thể ghi hoặc không ghi (ngầm hiểu), vì số thập phân là số mà ta sử dụng hằng ngày. Do đó, ta có thể sử dụng công thức sau để chuyển đổi từ các hệ đếm khác sang hệ thập phân (cơ số 10):

$X{\rm{ }} = {\rm{ }}{a_n}{a_{n - 1}}...{a_1}{a_0} = {\rm{ }}{a_n}{b^n} + {\rm{ }}{a_{n - 1}}{b^{n - 1}} + {\rm{ }}...{\rm{ }} + {\rm{ }}{a_1}{b^1} + {\rm{ }}{a_0}{b^0}$ (2.1)

Trong đó:

X:                    là số thập phân.

${a_0}...{a_n}$:             là các chữ số trong hệ đếm khác

b:                     là cơ số hệ đếm (2, 8, 16)

Bảng diễu diễn các giá trị tương đương của các hệ đếm

| Thập phân (hệ 10) | Nhị phân (hệ 2) | Bát phân (hệ 8) | Thập lục phân (hệ 16) | Số BCD | | --- | --- | --- | --- | --- | | 0 | 0000 | 0 | 0 | 0000 | | 1 | 0001 | 1 | 1 | 0001 | | 2 | 0010 | 2 | 2 | 0010 | | 3 | 0011 | 3 | 3 | 0011 | | 4 | 0100 | 4 | 4 | 0100 | | 5 | 0101 | 5 | 5 | 0101 | | 6 | 0110 | 6 | 6 | 0110 | | 7 | 0111 | 7 | 7 | 0111 | | 8 | 1000 | 10 | 8 | 1000 | | 9 | 1001 | 11 | 9 | 1001 | | 10 | 1010 | 12 | A | 00010000 | | 11 | 1011 | 13 | B | 00010001 | | 12 | 1100 | 14 | C | 00010010 | | 13 | 1101 | 15 | D | 00010011 | | 14 | 1110 | 16 | E | 00010100 | | 15 | 1111 | 17 | F | 00010101 |

2**.3. Chuyển đổi giữa các hệ đếm**

2**.3.1 Chuyển đổi giữa hệ nhị phân và thập phân**