Kỹ thuật mà ở đó để biểu diễn và làm việc với các con số thì được gọi là “hệ thống số” và “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ố. Hiện nay có các hệ thống số/hệ đếm phổ biến như sau hệ đếm nhị phân (binary), hệ đếm bát phân (octal), hệ đếm thập phân (decimal), hệ đếm thập lục phân (hexadecimal).
Hệ nhị phân (binary)
Là hệ đếm máy tính điện tử sẽ sử dụng hệ đếm nhị phân (binary) bởi hệ đếm này có các ưu điểm như sau:
- Cấu trúc đơn giản: các mạch điện chỉ có hai dạng đó là “đóng” = “on” = “dẫn điện” và “mở” = “off” = ‘”không dẫn điện”. Tương ứng với hai trạng thái này thì sẽ được biểu diễn như sau “đóng” = 1 và “mở” = 0.
- Có thể thực hiện các phép toán dễ dàng: do đó các phép toán có thể thực hiện dễ dàng bằng ác quy tắc đối với các mạch điện đơn giản.
- Độ tin cậy cao: mạch điện đơn giản nên tính tin cậy cao hơn do đó hạn chế các lỗi sai có thể có trong quá trình tính toán.
Ví dụ: 110102 = 1 × 24 + 1 × 23 + 0 × 22 + 1 × 21 + 0 × 20 = 16 + 8 + 0 + 2 + 0 = 2610
Tuy vậy, bạn cũng cần biết và nắm vững các hệ đếm khác để có thể hiểu được cách máy tính làm việc đặc biệt khi bạn mong muốn học sâu hơn về khoa học máy tính và các ngôn ngữ lập trình.
Hệ bát phân (octal)
Là hệ đếm cơ số 8 số từ 0 đến 7, là hệ thống giá trị theo vị trí trong đó mỗi chữ số có giá trị được biểu thị theo lũy thừa của 8.
Ví dụ: 7268 = 7 × 82 + 2 × 81 + 6 × 80 = 448 + 16 + 6 = 47010
Hệ thập phân (decimal)
Là hệ đếm có số 10, với các ký hiệu từ 0 đến 9, thường được sử dụng trong đời sống hằng ngày, nhưng không được trực tiếp sử dụng trong máy tính.
Ví dụ: Giả sử chúng ta có 3 số 734, 971 và 207. Giá trị của 7 trong cả 3 số đều khác nhau theo vị trí.
- Trong 734, giá trị của 7 là 7 trăm hoặc 700 hoặc 7 × 100 hoặc 7 × 102
- Trong 971, giá trị của 7 là 7 chục hoặc 70 hoặc 7 × 10 hoặc 7 × 101
- Trong 207, giá trị của 7 là 7 đơn vị hoặc 7 hoặc 7 × 1 hoặc 7 × 100
Hệ lục phân (hexadecimal)
Là hệ đếm cơ số 16, các ký hiệu từ 0 đến 9 và A,B,C,D,E,F (tương ứng với 10 – 15 trong hệ thập phân). Thường được dùng để biểu diễn địa chỉ bộ nhớ hoặc mã màu trong lập trình vì nó dễ chuyển đổi từ nhị phân hơn.
Ví dụ: 27FB16 = 2 × 163 + 7 × 162 + 15 × 161 + 10 × 160 = 8192 + 1792 + 240 +10 = 1023410
Mối quan hệ giữa các hệ đếm
Các hệ đếm lục phân, thập phân, nhị phân, bát phân và thập lục phân đều là cách hệ đếm phổ biến, nhưng chúng có cơ số khác nhau. Nhưng dù cơ số khác nhau, mục đích cuối cùng của các hệ đếm này đều là để biểu diễn các số lượng. Mọi số trong một hệ đếm đều có thể chuyển đổi sang các hệ đếm khác.
Đặc biệt các hệ số nhị phân, bát phân và thập lục phân có mối quan hệ mật thiết với nhau vì các cơ số của chúng đều là lũy thừa của 2 (2, 8 = 23, 16 = 24). Điều này giúp cho việc chuyển đổi trở nên dễ dàng.
Chuyển đổi các hệ đếm
Từ thập phân sang nhị phân
Phương pháp chia liên tục cho 2
- Bước 1: Lấy số thập phân chia cho 2, ghi lại số dư (là 0 hoặc 1).
- Bước 2: Lấy thương số vừa tìm được tiếp tục chia cho 2, lại ghi lại số dư.
- Bước 3: Tiếp tục quá trình này cho đến khi thương số bằng 0.
- Bước 4: Số nhị phân thu được bằng cách đọc các số dư theo thứ tự từ dưới lên trên.
Ví dụ: Chuyển số 13 từ hệ thập phân sang hệ nhị phân
13 / 2 = 6 dư 1
6 / 2 = 3 dư 0
3 / 2 = 1 dư 1
1 / 2 = 0 dư 1
Vậy 1310 = 11012
Từ thập phân sang bát phân
Phương pháp chi liên tục cho 8
- Bước 1: Lấy số thập phân chia cho 8, ghi lại số dư (số dư nằm trong khoản từ 0 đến 7).
- Bước 2: Lấy thương số vừa tìm được tiếp tục chia cho 8, lại ghi lại số dư.
- Bước 3: Tiếp tục quá trình này cho đến khi thương số bằng 0.
- Bước 4: Số bát phân thu được bằng cách đọc các số dư theo thứ tự từ dưới lên trên.
Ví dụ: Chuyển đổi 13 từ hệ thập phân sang hệ bát phân
13 / 8 = 1 dư 5
1 / 8 = 0 dư 1
Vậy 1310 = 158
Từ thập phân sang thập lục phân
Phương pháp chia liên tục cho 16
- Bước 1: Lấy số thập phân chia cho 16, ghi lại số dư (số dư nằm trong khoản từ 0 đến 9 hoặc các chữ cái A đến F).
- Bước 2: Lấy thương số vừa tìm được tiếp tục chia cho 16, lại ghi lại số dư.
- Bước 3: Tiếp tục quá trình này cho đến khi thương số bằng 0.
- Bước 4: Số thập lục phân thu được bằng cách đọc các số dư theo thứ tự từ dưới lên trên.
Ví dụ: Chuyển đổi 13 từ hệ thập phân sang hệ thập lục phân.
13 / 16 = 0 dư 13
Số dư là 13 và trong hệ thập lục phân thì số 13 được biểu diễn là chữ cái D.
Vậy 1310 = D8
Chuyển từ các hệ khác sang hệ thập phân
Từ nhị phân, bát phân hoặc thập lục phân sang thập phân
Mỗi chữ số trong số cần chuyển đổi được nhân với cơ số của hệ đó nâng lên lũy thừa tương ứng với vị trí của chữ số đó.
Các tích thu được cộng lại sẽ là kết quả tương ứng trong hệ thập phân.
Ví dụ: Chuyển đổi 11012 sang thập phân
11012 = 1 x 23 + 1 x 22 + 0 x 21 + 1 x 20 = 8 + 4 + 0 + 1 = 1310
Chuyển đổi giữa các hệ khác (không qua thập phân)
- Nhị phân sang bát phân: nhóm 3 bit liên tiếp trong số nhị phân thành 1 nhóm bát phân.
- Nhị phân sang thập lục phân: nhóm 4 bit liên tiếp số nhị phân thành 1 nhóm thập lục phân.
- Bát phân sang nhị phân: mỗi chữ số bát phân tương ứng với 3 bit nhị phân.
- Thập lục phân sang nhị phân: mỗi chữ số thập lục phân tương ứng với 4 bít nhị phân.