Bảng tham chiếu chuyển đổi cơ số
Bảng này cho thấy cùng các giá trị được viết ở bốn cơ số. Lưu ý cách một chữ số thập lục phân tương ứng với bốn chữ số nhị phân và một chữ số bát phân tương ứng với ba chữ số.
| Thập phân | Nhị phân | Bát phân | Thập lục phân |
|---|---|---|---|
| 0 | 0 | 0 | 0 |
| 5 | 101 | 5 | 5 |
| 8 | 1000 | 10 | 8 |
| 10 | 1010 | 12 | A |
| 15 | 1111 | 17 | F |
| 16 | 10000 | 20 | 10 |
| 100 | 1100100 | 144 | 64 |
| 255 | 11111111 | 377 | FF |
- Máy tính này xử lý các số nguyên không âm lên đến giới hạn số nguyên an toàn của số dấu phẩy động độ chính xác kép IEEE 754 (2⁵³ − 1 = 9.007.199.254.740.991); đầu vào lớn hơn sẽ bị từ chối thay vì âm thầm làm tròn.
- Các giá trị phân số và số âm (biểu diễn bù hai) nằm ngoài phạm vi của công cụ chuyển đổi này.
Hệ nhị phân là gì?
Hệ nhị phân là hệ đếm vị trí với cơ số 2: nó viết mọi số chỉ bằng hai chữ số 0 và 1, trong đó mỗi vị trí đại diện cho một lũy thừa của 2. Đọc số nhị phân 1010 từ phải sang trái, các chữ số biểu thị 0×1 + 1×2 + 0×4 + 1×8 = 10 trong hệ thập phân. Các mạch điện tử số lưu trữ và xử lý thông tin dưới dạng nhị phân vì một phần tử mạch có hai trạng thái (bật/tắt) ánh xạ trực tiếp với một chữ số nhị phân, hay còn gọi là bit.
Hệ thập lục phân (cơ số 16) và hệ bát phân (cơ số 8) là những dạng rút gọn đi kèm với hệ nhị phân. Vì 16 = 2⁴, một chữ số thập lục phân đại diện cho chính xác bốn chữ số nhị phân, và vì 8 = 2³, một chữ số bát phân đại diện cho chính xác ba chữ số. Hệ thập lục phân dùng các chữ số 0–9 cộng với các chữ cái A–F cho các giá trị từ mười đến mười lăm; số thập phân 255 là 11111111 trong nhị phân, FF trong thập lục phân và 377 trong bát phân.
Mọi hệ đếm vị trí đều tuân theo cùng một quy tắc: một số được viết dưới dạng các chữ số dₙ…d₁d₀ ở cơ số b có giá trị bằng tổng của mỗi chữ số nhân với b lũy thừa vị trí của chữ số đó. Vì vậy, chuyển đổi giữa các cơ số thuần túy là một phép biến đổi ký hiệu — tính giá trị của các chữ số theo cơ số nguồn để có được giá trị, sau đó chia liên tiếp cho cơ số đích để viết ra kết quả.
Cách sử dụng máy tính nhị phân này
- Nhập số bạn muốn chuyển đổi (tối đa 64 chữ số; các tiền tố như 0b, 0x hoặc 0o được chấp nhận và bỏ qua).
- Chọn cơ số mà số đó được viết theo — nhị phân, thập phân, thập lục phân hoặc bát phân.
- Đọc giá trị thập phân cùng các dạng biểu diễn nhị phân, thập lục phân và bát phân tương ứng.
- Chỉ những chữ số hợp lệ trong cơ số đã chọn mới được chấp nhận; ví dụ, chữ số 8 không hợp lệ trong đầu vào bát phân.
Toán học đằng sau việc chuyển đổi cơ số
Để chuyển sang thập phân, nhân mỗi chữ số với cơ số lũy thừa vị trí của chữ số đó (đếm từ 0 ở bên phải) rồi cộng lại. Để chuyển từ thập phân sang cơ số khác, chia liên tiếp cho cơ số đích và đọc các số dư theo thứ tự ngược lại.
Ví dụ minh họa: 1010 trong nhị phân bằng 1×2³ + 0×2² + 1×2¹ + 0×2⁰ = 8 + 2 = 10 trong thập phân. Viết 10 ở các cơ số khác: 10 ÷ 16 = 0 dư 10 → A trong thập lục phân; 10 ÷ 8 = 1 dư 2 → 12 trong bát phân.
Lỗi thường gặp
- Đọc 10 ở một cơ số khác là 'mười' — 10 luôn biểu thị chính cơ số đó trong mọi hệ đếm vị trí (10₂ = 2, 10₈ = 8, 10₁₆ = 16).
- Sử dụng các chữ số không tồn tại trong cơ số đã chọn, chẳng hạn 8 hoặc 9 trong bát phân, hoặc các chữ cái sau F trong thập lục phân.
- Nhầm lẫn kích thước nhóm bit: một chữ số hex là bốn bit và một chữ số bát phân là ba bit, nên nhóm sai các chữ số nhị phân sẽ cho kết quả chuyển đổi sai.
- Quên rằng các số 0 ở đầu không làm thay đổi gì cả: 0010₂ và 10₂ đều bằng 2 trong thập phân.
Câu hỏi thường gặp
Làm thế nào để chuyển đổi nhị phân sang thập phân bằng tay?
Nhân mỗi chữ số nhị phân với lũy thừa của 2 tương ứng với vị trí của nó, đếm từ 0 ở chữ số ngoài cùng bên phải, rồi cộng các kết quả lại. Với 1101: 1×8 + 1×4 + 0×2 + 1×1 = 13. Đọc từ phải sang trái, các giá trị vị trí là 1, 2, 4, 8, 16, 32 và cứ thế tiếp tục.
Làm thế nào để chuyển đổi thập phân sang nhị phân?
Chia số đó cho 2 liên tiếp và ghi lại từng số dư. Kết quả nhị phân là các số dư đọc theo thứ tự ngược lại. Với 13: 13÷2 = 6 dư 1, 6÷2 = 3 dư 0, 3÷2 = 1 dư 1, 1÷2 = 0 dư 1 — đọc từ dưới lên cho ra 1101.
Tại sao máy tính lại sử dụng hệ nhị phân?
Các mạch điện tử số phân biệt đáng tin cậy hai trạng thái điện áp, và mỗi trạng thái ánh xạ với một chữ số nhị phân (bit). Xây dựng phần cứng dựa trên hai trạng thái giúp việc lưu trữ và xử lý logic trở nên đơn giản và chống nhiễu tốt, vì vậy mọi bộ xử lý và bộ nhớ phổ biến đều biểu diễn dữ liệu ở dạng nhị phân tại mức vật lý, bất kể ký hiệu nào lập trình viên sử dụng bên trên.
Hệ thập lục phân được dùng để làm gì?
Hệ thập lục phân là một cách viết gọn cho dữ liệu nhị phân: một chữ số hex mã hóa chính xác bốn bit, nên một byte luôn là hai chữ số hex (00–FF). Đây là ký hiệu tiêu chuẩn cho địa chỉ bộ nhớ, mã màu (ví dụ #FF6600), địa chỉ MAC và dữ liệu thô vì nó ngắn hơn nhiều so với nhị phân trong khi vẫn có thể chuyển đổi theo từng chữ số.
Số lớn nhất mà máy tính này chấp nhận là bao nhiêu?
Đầu vào giới hạn ở 64 chữ số và các giá trị nhỏ hơn hoặc bằng 2⁵³ − 1 = 9.007.199.254.740.991, số nguyên lớn nhất mà số dấu phẩy động độ chính xác kép IEEE 754 có thể biểu diễn chính xác. Vượt quá giới hạn đó, các số JavaScript thông thường mất độ chính xác số nguyên, nên máy tính từ chối đầu vào thay vì trả về kết quả đã làm tròn.
Tài liệu tham khảo
- Knuth DE. The Art of Computer Programming, Volume 2: Seminumerical Algorithms, 3rd edition, Addison-Wesley, 1997 — positional number systems and radix conversion.
- IEEE Std 754-2019. IEEE Standard for Floating-Point Arithmetic — double-precision format and exact-integer range.