Công cụ chuyển nhị phân sang thập phân là gì?
Công cụ chuyển nhị phân sang thập phân giúp đổi một số viết theo hệ cơ số 2 (chỉ dùng hai chữ số 0 và 1) thành số tương ứng trong hệ cơ số 10 — hệ đếm quen thuộc hằng ngày của chúng ta. Máy tính lưu trữ và xử lý mọi thứ dưới dạng nhị phân, nên việc đổi sang thập phân là điều cần thiết mỗi khi bạn muốn đọc được giá trị từ các dãy bit thô, dữ liệu bộ nhớ, mặt nạ mạng (network mask) hay kết quả xuất ra khi lập trình.
Cách sử dụng
Hãy nhập số nhị phân của bạn vào ô — ví dụ 101101 — và công cụ sẽ trả về giá trị thập phân cùng số lượng bit. Mọi ký tự không phải 0 hoặc 1 đều được bỏ qua, vì vậy bạn có thể yên tâm dán những nhóm bit có khoảng trắng như 1011 0101.
Giải thích công thức
Mỗi chữ số nhị phân (bit) mang một trọng số vị trí bằng 2 lũy thừa theo vị trí của nó, đếm từ phải sang trái bắt đầu từ 0. Giá trị thập phân chính là tổng của từng bit nhân với trọng số tương ứng:
$$\text{Decimal} = \sum_{i=0}^{n-1} d_i \cdot 2^{\,n-1-i}, \quad d_i \in \text{Binary Number}$$
Bit ngoài cùng bên phải có trọng số \(2^0 = 1\), bit kế tiếp là \(2^1 = 2\), rồi đến \(2^2 = 4\), \(2^3 = 8\), và cứ thế tiếp tục.
Ví dụ minh họa
Hãy đổi 101101. Đọc từ phải sang trái với các trọng số 1, 2, 4, 8, 16, 32:
$$(1\cdot32) + (0\cdot16) + (1\cdot8) + (1\cdot4) + (0\cdot2) + (1\cdot1) = 32 + 8 + 4 + 1 = \mathbf{45}$$ Vậy số nhị phân 101101 bằng 45 trong hệ thập phân.
Quyền lực của Trọng số Vị trí Hai
Trong một số nhị phân, mỗi bit có trọng số vị trí bằng một lũy thừa của hai. Bit ngoài cùng bên phải (vị trí 0) có trọng số \(2^0 = 1\), và mỗi vị trí ở bên trái sẽ tăng gấp đôi trọng số. Để chuyển đổi bằng tay, nhân mỗi bit với trọng số của nó và cộng các kết quả:
$$\text{Thập phân} = \sum_{i=0}^{n-1} d_i \cdot 2^{\,i}$$
trong đó \(i\) đếm vị trí từ phải (bit có ý nghĩa nhất thấp), bắt đầu từ 0.
| Vị trí bit \(i\) | Lũy thừa \(2^i\) | Trọng số thập phân |
|---|---|---|
| 0 | \(2^0\) | 1 |
| 1 | \(2^1\) | 2 |
| 2 | \(2^2\) | 4 |
| 3 | \(2^3\) | 8 |
| 4 | \(2^4\) | 16 |
| 5 | \(2^5\) | 32 |
| 6 | \(2^6\) | 64 |
| 7 | \(2^7\) | 128 |
| 8 | \(2^8\) | 256 |
| 9 | \(2^9\) | 512 |
| 10 | \(2^{10}\) | 1.024 |
| 11 | \(2^{11}\) | 2.048 |
| 12 | \(2^{12}\) | 4.096 |
| 13 | \(2^{13}\) | 8.192 |
| 14 | \(2^{14}\) | 16.384 |
| 15 | \(2^{15}\) | 32.768 |
| 16 | \(2^{16}\) | 65.536 |
Đối với một byte 8 bit, giá trị lớn nhất là \(2^8 - 1 = 255\) (tất cả tám bit được đặt thành 1), và đối với 16 bit thì là \(2^{16} - 1 = 65.535\).
Các ví dụ làm việc khác
Mỗi ví dụ xếp hàng mỗi bit với trọng số vị trí của nó từ bảng ở trên, chỉ giữ lại các trọng số nơi bit là 1, và cộng chúng lại để có được giá trị thập phân.
Ví dụ 1: 11111111 (8 bit đều được đặt)
Mỗi bit là 1, vì vậy chúng ta cộng tất cả tám trọng số từ vị trí 7 xuống vị trí 0:
$$128 + 64 + 32 + 16 + 8 + 4 + 2 + 1$$
Tổng là 255, đây là giá trị lớn nhất mà một byte 8 bit có thể giữ.
Ví dụ 2: 10000000
Chỉ bit ngoài cùng bên trái (vị trí 7) là 1; tất cả các vị trí khác đóng góp 0:
$$1\cdot128 + 0\cdot64 + 0\cdot32 + 0\cdot16 + 0\cdot8 + 0\cdot4 + 0\cdot2 + 0\cdot1$$
Điều này đơn giản hóa thành chỉ một trọng số duy nhất \(2^7\), cho kết quả 128.
Ví dụ 3: 110010101 (9 bit)
Viết các bit với trọng số vị trí của chúng, các bit 1 nằm ở vị trí 8, 7, 4, 2 và 0:
| Bit | 1 | 1 | 0 | 0 | 1 | 0 | 1 | 0 | 1 |
|---|---|---|---|---|---|---|---|---|---|
| Vị trí | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| Trọng số | 256 | 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
Cộng chỉ các trọng số nơi bit là 1:
$$256 + 128 + 16 + 4 + 1$$
Kết quả thập phân là 405. Bạn có thể xác nhận hướng ngược lại bằng một trình chuyển đổi thập phân sang nhị phân bằng cách nhập 405 và kiểm tra xem nó có trả về 110010101 hay không.
Câu hỏi thường gặp
Số nhị phân 8 bit lớn nhất là bao nhiêu? Đó là 11111111, tương đương 255 trong hệ thập phân (\(2^8 - 1\)).
Tôi có thể nhập các số 0 đứng đầu không? Có. Những số 0 đứng đầu không làm thay đổi giá trị — 0010 cũng giống như 10, cả hai đều bằng 2 trong hệ thập phân.
Công cụ có hỗ trợ số nhị phân có phần thập phân không? Không, công cụ này chỉ chuyển đổi số nguyên nhị phân. Phần lẻ sau dấu phẩy không được hỗ trợ.