Trả lời nhanh
Muốn đổi thập phân sang nhị phân, chia liên tục cho 2 và đọc phần dư từ dưới lên: 13 → 1101. Ngược lại, nhân mỗi chữ số với 2 mũ vị trí rồi cộng: 1101 = 8 + 4 + 0 + 1 = 13. Hex dùng 0–9 và A–F, mỗi chữ số hex ứng với đúng 4 bit.
Hệ cơ số là gì?
Nhập một số ở hệ bất kỳ để thấy ngay giá trị ở nhị phân, bát phân, thập phân, thập lục phân (hex) và một cơ số tùy chọn từ 2 đến 36. Công cụ dùng BigInt nên số dài hàng trăm chữ số vẫn chính xác, nhận số âm, phần thập phân (10.5), tiền tố 0x, 0b, 0o. Phần bù 2 cho biết số âm được lưu thế nào ở 8, 16, 32, 64 bit, còn phần văn bản đổi chữ (kể cả tiếng Việt có dấu) sang mã nhị phân hay hex theo UTF-8 và ngược lại.

Cách đổi một số sang hệ khác
- 1
Nhập số vào ô “Số cần đổi” và chọn hệ của số đó ở ô “Từ hệ” (chọn “Cơ số khác” cho hệ 3, 5, 36…).
- 2
Đọc kết quả ở bảng: nhị phân và hex được nhóm 4 chữ số cho dễ đọc; bấm “Sao chép” để lấy số liền không khoảng trắng.
- 3
Với số âm hay số đọc từ thanh ghi, chọn độ rộng 8, 16, 32 hoặc 64 bit ở phần “Bù 2” để xem dạng bit và giá trị có dấu.
- 4
Cần đổi chữ sang mã máy, dùng phần “Văn bản ↔ nhị phân / hex”; đổi chiều để giải mã chuỗi byte trở lại thành chữ.
Bảng đổi 0–15 giữa các hệ
| Thập phân | Nhị phân | Bát phân | Hex |
|---|---|---|---|
| 0 | 0000 | 0 | 0 |
| 1 | 0001 | 1 | 1 |
| 2 | 0010 | 2 | 2 |
| 3 | 0011 | 3 | 3 |
| 4 | 0100 | 4 | 4 |
| 5 | 0101 | 5 | 5 |
| 6 | 0110 | 6 | 6 |
| 7 | 0111 | 7 | 7 |
| 8 | 1000 | 10 | 8 |
| 9 | 1001 | 11 | 9 |
| 10 | 1010 | 12 | A |
| 11 | 1011 | 13 | B |
| 12 | 1100 | 14 | C |
| 13 | 1101 | 15 | D |
| 14 | 1110 | 16 | E |
| 15 | 1111 | 17 | F |
Vuốt ngang để xem cả bảng →
Mỗi chữ số hex = 4 bit, mỗi chữ số bát phân = 3 bit, nên đổi giữa nhị phân và hex chỉ cần nhóm 4 chữ số từ phải sang.
Phạm vi số nguyên theo số bit
| Độ rộng | Có dấu (bù 2) | Không dấu | Kiểu dữ liệu thường gặp |
|---|---|---|---|
| 8 bit | −128 đến 127 | 0 đến 255 | byte, int8, uint8 |
| 16 bit | −32 768 đến 32 767 | 0 đến 65 535 | short, int16 |
| 32 bit | −2 147 483 648 đến 2 147 483 647 | 0 đến 4 294 967 295 | int, int32, INT trong MySQL |
| 64 bit | khoảng ±9,22 × 10¹⁸ | 0 đến khoảng 1,84 × 10¹⁹ | long, int64, BIGINT |
Vuốt ngang để xem cả bảng →
Ví dụ thực tế
Mã màu CSS
#FF8800 gồm ba cặp hex FF, 88, 00, tức đỏ 255, xanh lá 136, xanh dương 0. Nhập FF ở hệ 16 để thấy 255.
Quyền tệp Linux 755
755 là số bát phân: 7 = 111 (rwx), 5 = 101 (r-x). Đổi 755 từ hệ 8 sang nhị phân được 111 101 101.
Đọc giá trị âm từ cảm biến
Thanh ghi 16 bit trả về 0xFF38. Nhập FF38 ở hệ 16, chọn 16 bit ở phần bù 2: giá trị có dấu là −200.
Chữ “ă” trong UTF-8
Chữ ă chiếm 2 byte: C4 83 (11000100 10000011). Chữ cái tiếng Anh chỉ 1 byte, nên văn bản tiếng Việt thường dài hơn khi tính byte.
Lỗi thường gặp
- Báo chữ số không hợp lệ.
- Kiểm tra ô “Từ hệ”: số 19 không có ở hệ 8 (chỉ dùng 0–7), chữ A chỉ có từ hệ 11 trở lên.
- 0,1 đổi sang nhị phân ra một dãy rất dài.
- 0,1 ở hệ 10 là phân số vô hạn tuần hoàn ở hệ 2 (giống 1/3 = 0,333… ở hệ 10). Công cụ cắt ở 32 chữ số; đây cũng là lý do 0.1 + 0.2 ≠ 0.3 trong lập trình.
- Số âm đổi sang nhị phân chỉ thêm dấu trừ.
- Đó là cách viết toán học. Máy tính lưu số âm theo bù 2: xem ở phần “Bù 2” với đúng độ rộng bit của kiểu dữ liệu.
Đổi phân số sang hệ khác như thế nào?
Phần nguyên đổi bằng cách chia liên tục cho cơ số mới. Phần sau dấu chấm thì làm ngược lại: nhân với cơ số mới, lấy phần nguyên làm chữ số tiếp theo, lặp lại với phần lẻ còn lại. Ví dụ 0,75 sang nhị phân: 0,75 × 2 = 1,5 → 1; 0,5 × 2 = 1,0 → 1; kết quả 0,11.
Một phân số hữu hạn ở hệ này có thể vô hạn ở hệ khác. 0,5 hay 0,25 đổi sang nhị phân gọn gàng, còn 0,1 hay 0,2 thì lặp mãi, nên máy tính lưu chúng xấp xỉ.
Thuật ngữ
- Cơ số
- Số chữ số khác nhau một hệ dùng: hệ 10 có 10 chữ số, hệ 2 có 2 chữ số 0 và 1.
- Bit
- Một chữ số nhị phân, mang giá trị 0 hoặc 1.
- Byte
- Nhóm 8 bit, biểu diễn được 256 giá trị (0–255), viết gọn bằng 2 chữ số hex.
- Bù 2
- Cách máy tính lưu số âm: bit cao nhất là bit dấu, phép cộng trừ dùng chung mạch với số dương.
- UTF-8
- Bảng mã phổ biến nhất trên web; mỗi ký tự chiếm 1–4 byte, chữ tiếng Việt có dấu thường 2–3 byte.
- BigInt
- Kiểu số nguyên không giới hạn độ dài của JavaScript, không bị làm tròn như Number.
Câu hỏi thường gặp
Tại sao gọi là hệ thập lục phân?
Thập lục là mười sáu: hệ này có 16 chữ số 0–9 và A–F (A = 10 … F = 15). Lập trình viên dùng hex vì nó gọn hơn nhị phân 4 lần mà vẫn đổi qua lại dễ.
Bù 2 tính thế nào?
Đảo hết các bit của số dương rồi cộng 1. Ví dụ −5 ở 8 bit: 5 = 00000101 → đảo 11111010 → cộng 1 = 11111011 (0xFB).
Cơ số lớn nhất là bao nhiêu?
36, vì dùng 10 chữ số và 26 chữ cái. Hệ 36 hay dùng để rút gọn mã số, ví dụ mã đơn hàng hay đường dẫn ngắn.
Số lớn có bị làm tròn không?
Không. Công cụ dùng BigInt nên số nguyên dài bao nhiêu cũng giữ đúng từng chữ số, khác với máy tính bỏ túi hay Number của JavaScript (chỉ chính xác tới khoảng 16 chữ số).
Đổi hex sang thập phân bằng tay thế nào?
Nhân mỗi chữ số với 16 mũ vị trí tính từ phải (bắt đầu từ 0) rồi cộng. Ví dụ 2F = 2 × 16 + 15 = 47.
Văn bản đổi sang nhị phân có dùng ASCII không?
Công cụ dùng UTF-8. Với chữ cái tiếng Anh, chữ số và dấu câu, UTF-8 trùng hoàn toàn với ASCII; chữ có dấu và emoji thì cần nhiều byte hơn.
Đánh giá và bình luận
Đang tải…