Công cụ chuyển nhị phân sang hex là gì?
Công cụ này giúp bạn đổi một số viết ở hệ nhị phân (cơ số 2, chỉ gồm chữ số 0 và 1) sang hệ thập lục phân (cơ số 16, gồm các chữ số 0-9 và A-F). Hệ hex được dùng rất phổ biến trong lập trình, địa chỉ bộ nhớ, mã màu và gỡ lỗi (debug) vì nó biểu diễn dữ liệu nhị phân gọn gàng hơn nhiều — cứ mỗi nhóm bốn bit nhị phân sẽ tương ứng đúng một chữ số hex.
Cách sử dụng
Hãy nhập hoặc dán một số nhị phân, ví dụ 11010110, vào ô nhập rồi bấm chuyển đổi. Mọi khoảng trắng hay ký tự thừa đều được bỏ qua, nên bạn cũng có thể nhập 1101 0110. Kết quả sẽ hiển thị giá trị thập lục phân, giá trị thập phân tương ứng và tổng số bit.
Giải thích công thức
Phép chuyển đổi dựa trên một thực tế: \(16 = 2^4\). Thuật toán sẽ thêm các số 0 vào bên trái chuỗi nhị phân cho đến khi độ dài chia hết cho 4, rồi tách thành các nhóm 4 bit (gọi là nibble), tính từ phải sang trái. Mỗi nibble là một giá trị từ 0 đến 15, được tính theo công thức
$$\text{Hex}_{16} = \sum_{i=0}^{n-1} d_i \cdot 16^{i}, \quad d_i \in \{0\text{–}9,\,A\text{–}F\} \;\leftarrow\; \text{Binary (base 2)}$$trong đó mỗi nibble được tính bằng \(8 \cdot b_3 + 4 \cdot b_2 + 2 \cdot b_1 + b_0\), và giá trị đó ánh xạ thành một chữ số hex duy nhất (0-9 rồi A-F). Ghép các chữ số lại với nhau ta được kết quả thập lục phân.
Ví dụ minh họa
Lấy số 11010110. Tách thành các nibble: 1101 và 0110. Nhóm đầu bằng \(8+4+0+1 = 13 = D\). Nhóm sau bằng \(0+4+2+0 = 6\). Vậy kết quả hex là D6, tương đương 214 ở hệ thập phân.
Bảng tra cứu chuyển đổi Nibble nhị phân sang chữ số Hex
Cách nhanh nhất để chuyển đổi nhị phân sang hệ thập lục phân là chia các bit thành các nhóm gồm bốn bit (gọi là nibble) và thay thế mỗi nibble bằng một chữ số hex duy nhất. Vì \(2^4 = 16\), mọi mẫu 4-bit đều ánh xạ tới đúng một trong 16 chữ số hex. Ghi nhớ hoặc tham khảo bảng dưới đây cho phép bạn chuyển đổi bất kỳ số nhị phân nào từng nibble một, mà không cần phép chia.
| Nhị phân 4-bit (nibble) | Thập phân (cơ số 10) | Chữ số Hex (cơ số 16) |
|---|---|---|
| 0000 | 0 | 0 |
| 0001 | 1 | 1 |
| 0010 | 2 | 2 |
| 0011 | 3 | 3 |
| 0100 | 4 | 4 |
| 0101 | 5 | 5 |
| 0110 | 6 | 6 |
| 0111 | 7 | 7 |
| 1000 | 8 | 8 |
| 1001 | 9 | 9 |
| 1010 | 10 | A |
| 1011 | 11 | B |
| 1100 | 12 | C |
| 1101 | 13 | D |
| 1110 | 14 | E |
| 1111 | 15 | F |
Ví dụ thực hành: byte 11010110 chia thành 1101 và 0110. Từ bảng này, chúng ánh xạ tới D và 6, cho giá trị hex D6, bằng thập phân 214. Nếu độ dài của một số nhị phân không phải là bội số của 4, hãy thêm các số 0 vào bên trái trước khi nhóm (ví dụ: 101101 trở thành 0010 1101 → 2D).
Các thuật ngữ chính
- Bit
- Đơn vị nhỏ nhất của thông tin kỹ thuật số, chứa một giá trị nhị phân duy nhất là 0 hoặc 1. Từ này là viết tắt của "binary digit" (chữ số nhị phân).
- Nibble
- Một nhóm gồm bốn bit. Vì bốn bit biểu thị \(2^4 = 16\) giá trị có thể, một nibble tương ứng với chính xác một chữ số thập lục phân — đó là lý do tại sao chuyển đổi nhị phân sang hex lại trực tiếp như vậy.
- Byte
-
Một nhóm gồm tám bit (hai nibble). Một byte chứa \(2^8 = 256\) giá trị có thể và được viết dưới dạng chính xác hai chữ số hex, ví dụ:
11111111=FF= 255. - Cơ số / Radix
- Số lượng ký hiệu chữ số khác biệt mà một hệ thống số theo vị trí sử dụng, và hệ số nhân giữa các giá trị vị trí. Nhị phân là cơ số 2, thập phân là cơ số 10, và thập lục phân là cơ số 16. Trong cơ số \(b\), chữ số ở vị trí \(i\) (tính từ 0 bên phải) mang trọng lượng \(b^{i}\).
- Nhị phân (cơ số 2)
- Một hệ thống số sử dụng chỉ các chữ số 0 và 1, trong đó mỗi vị trí đáng giá một lũy thừa của hai. Nó phản ánh trạng thái bật/tắt của các thiết bị điện tử kỹ thuật số, làm cho nó trở thành ngôn ngữ gốc của máy tính.
- Thập phân (cơ số 10)
- Hệ thống số hàng ngày sử dụng các chữ số từ 0 đến 9, trong đó mỗi vị trí đáng giá một lũy thừa của mười. Nó đóng vai trò là điểm tham chiếu chung khi so sánh các giá trị nhị phân và hex.
- Thập lục phân (cơ số 16)
- Một hệ thống số sử dụng mười sáu chữ số: 0–9 theo sau là A–F (trong đó A=10, B=11, C=12, D=13, E=14, F=15). Tính gọn nhẹ của nó — một chữ số hex cho mỗi nibble — làm cho các chuỗi nhị phân dài dễ đọc và viết hơn nhiều cho con người.
- MSB / LSB
- Bit có ý nghĩa nhất là bit bên trái nhất, mang giá trị vị trí lớn nhất (lũy thừa cao nhất của hai). Bit có ý nghĩa ít nhất là bit bên phải nhất, mang giá trị nhỏ nhất (\(2^0 = 1\)). Ý tưởng "có ý nghĩa nhất/ít nhất" tương tự cũng áp dụng cho các chữ số toàn bộ trong hex.
- Tiền tố 0x
-
Một dấu hiệu thông lệ, được viết trước một số, cho biết rằng giá trị được biểu thị dưới dạng thập lục phân — ví dụ:
0xD6có nghĩa là giá trị hex D6 (thập phân 214), không phải các chữ số "D6" ở cơ số khác. Nó được sử dụng rộng rãi trong các ngôn ngữ lập trình như C, Java và Python. Nhị phân thường được tương tự thêm tiền tố với0b.
Câu hỏi thường gặp
Nếu số bit không chia hết cho 4 thì sao? Công cụ sẽ tự động thêm các số 0 vào bên trái, nên 1010110 trở thành 0101 0110 = 56.
Có xử lý được các số 0 ở đầu không? Có — các số 0 đứng đầu sẽ được loại bỏ khỏi kết quả hex cuối cùng, nhưng chúng không làm thay đổi giá trị.
Kết quả có viết hoa không? Theo quy ước, các chữ số hex A-F được hiển thị bằng chữ in hoa và thêm tiền tố 0x ở đầu cho dễ nhận biết.