Cách quy đổi giữa các hệ cơ số?
Để đổi một số thập phân sang hệ cơ số khác, chia số đó liên tiếp cho cơ số đích và đọc các số dư theo thứ tự ngược lại; để đổi về thập phân, nhân mỗi chữ số với giá trị hàng của nó rồi cộng các kết quả lại. Ví dụ: số thập phân 255 là 11111111 ở hệ nhị phân, 377 ở hệ bát phân và FF ở hệ thập lục phân.
Các bước đổi một số thập phân sang hệ cơ số khác
- Chia số thập phân cho cơ số đích và ghi lại số dư.
- Chia thương số từ bước trước cho cơ số một lần nữa, ghi lại từng số dư.
- Lặp lại cho đến khi thương số bằng 0.
- Đọc các số dư theo thứ tự ngược lại (số tính sau cùng đọc trước) để được số đã đổi.
- Với hệ thập lục phân, thay các số dư từ 10 đến 15 bằng các chữ cái từ A đến F.
Quy đổi hệ cơ số
Giá trị thập phân = Tổng của (chữ số x cơ số^vị trí), đọc vị trí từ phải sang trái bắt đầu từ 0
- Cơ số 2 (nhị phân) dùng chữ số 0-1 · Cơ số 8 (bát phân) dùng chữ số 0-7
- Cơ số 10 (thập phân) dùng chữ số 0-9 · Cơ số 16 (thập lục phân) dùng chữ số 0-9 và A-F
Các giá trị quy đổi hệ cơ số thường tìm
FF trong hệ 16 đổi sang hệ 10 là bao nhiêu?
FF trong hệ 16 bằng 255 trong hệ 10 (15 × 16 + 15 = 255).
1010 trong hệ 2 đổi sang hệ 10 là bao nhiêu?
1010 trong hệ 2 bằng 10 trong hệ 10 (1×8 + 0×4 + 1×2 + 0×1 = 10).
255 viết theo hệ nhị phân (hệ 2) là gì?
255 trong hệ 10 là 11111111 trong hệ 2 (tám số 1, giá trị lớn nhất của một byte 8 bit).
100 trong hệ 2 đổi sang hệ 10 là bao nhiêu?
100 trong hệ 2 bằng 4 trong hệ 10 (1×4 + 0×2 + 0×1 = 4).
7F trong hệ 16 đổi sang hệ 10 là bao nhiêu?
7F trong hệ 16 bằng 127 trong hệ 10 (7×16 + 15 = 127), giá trị lớn nhất của byte 8 bit có dấu.
10 trong hệ 10 viết theo hệ 16 là gì?
10 trong hệ 10 là A trong hệ 16, vì các chữ số hex A-F đại diện cho 10-15.
8 trong hệ 10 viết theo hệ 8 là gì?
8 trong hệ 10 là 10 trong hệ 8 (một nhóm 8 cộng không đơn vị).
377 trong hệ 8 đổi sang hệ 10 là bao nhiêu?
377 trong hệ 8 bằng 255 trong hệ 10 (3×64 + 7×8 + 7×1 = 255).
Ví dụ quy đổi giữa bốn hệ cơ số
| Thập phân | Nhị phân | Bát phân | Thập lục phân |
|---|
| 255 | 11111111 | 377 | FF |
| 100 | 1100100 | 144 | 64 |
| 42 | 101010 | 52 | 2A |
| 1000 | 1111101000 | 1750 | 3E8 |
| 8 | 1000 | 10 | 8 |
Câu hỏi thường gặp
Vì sao máy tính dùng hệ nhị phân thay vì hệ thập phân?
Phần cứng máy tính được xây dựng từ các bóng bán dẫn, đọc đáng tin cậy nhất ở hai trạng thái, bật hoặc tắt, khớp tự nhiên với hai chữ số nhị phân 1 và 0. Dùng hai trạng thái thay vì mười giúp giảm khả năng đọc sai tín hiệu.
Vì sao hệ thập lục phân phổ biến trong lập trình?
Mỗi chữ số thập lục phân biểu diễn đúng 4 bit nhị phân, nên một byte (8 bit) luôn tương ứng đúng 2 chữ số hex, như FF cho 11111111. Điều này khiến hex trở thành cách viết gọn, dễ đọc cho giá trị nhị phân, thường thấy trong mã màu và địa chỉ bộ nhớ.
Làm sao đổi một số nhị phân về thập phân?
Nhân mỗi chữ số nhị phân với 2 lũy thừa vị trí của nó, bắt đầu từ 0 ở bên phải, rồi cộng các kết quả lại. Ví dụ, số nhị phân 1010 là (1x8) + (0x4) + (1x2) + (0x1) = 10 ở hệ thập phân.
Những ký tự nào không hợp lệ với từng hệ cơ số?
Hệ nhị phân chỉ chấp nhận 0 và 1; hệ bát phân chấp nhận 0 đến 7; hệ thập phân chấp nhận 0 đến 9; hệ thập lục phân chấp nhận 0 đến 9 và A đến F, không phân biệt hoa thường. Nhập ký tự khác sẽ báo lỗi cho hệ cơ số đó.
Hệ thập lục phân còn xuất hiện ở đâu ngoài lập trình?
Ngoài lập trình, hệ thập lục phân xuất hiện đặc biệt trong mã màu web (ví dụ #4F46E5), địa chỉ MAC của thiết bị mạng, và mã định danh màu dùng trong thiết kế đồ họa — công cụ chuyển mã màu trên trang này cũng dựa trên cùng nguyên lý đó.
Công cụ này chỉ quy đổi số nguyên không âm; không hỗ trợ số âm, giá trị phân số (không nguyên), hay các hệ cơ số khác ngoài 2, 8, 10 và 16.
Sources: Donald E. Knuth, The Art of Computer Programming, Vol. 2: Seminumerical Algorithms (positional numeral systems)