Nhị phân, thập phân và thập lục phân: cách đổi qua lại

Đổi giữa các hệ cơ số nghe như phép màu cho đến khi bạn thấy nó luôn là cùng một ý tưởng: mỗi chữ số có giá trị tùy theo vị trí nó đứng. Ở đây bạn sẽ học đổi bằng tay từ nhị phân sang thập phân và ngược lại, đọc thập lục phân không còn sợ và chuyển văn bản thành bit, với các phép tính giải sẵn và một bảng từ 0 đến 15 để tra.

Cập nhật:

Hệ vị trí là gì

Trong số thập phân 4.095, chữ số 4 không có giá trị 4: nó có giá trị 4.000, vì đứng ở hàng nghìn. Mỗi vị trí nhân chữ số với một lũy thừa của 10 (1, 10, 100, 1.000…). Đó là hệ vị trí, và cơ số là số lượng chữ số khác nhau được dùng: mười chữ số với hệ thập phân.

Nhị phân hoạt động y hệt, nhưng với cơ số 2: chỉ có 0 và 1, và mỗi hàng có giá trị gấp đôi hàng trước. Thập lục phân dùng cơ số 16: mười sáu chữ số là 0 đến 9 và các chữ cái A đến F, và mỗi hàng có giá trị gấp 16 lần hàng trước. Máy tính làm việc bằng nhị phân vì một mạch điện chỉ cần phân biệt hai trạng thái (tắt và bật), còn thập lục phân là cách viết ngắn gọn các bit đó.

Giá trị của từng hàng. Thuộc lòng các lũy thừa của 2 đến 128 giúp bạn bớt gần hết các phép tính.
Vị trí (từ phải sang trái)Giá trị trong nhị phânGiá trị trong thập lục phân
Thứ 111
Thứ 2216
Thứ 34256
Thứ 484.096
Thứ 51665.536
Thứ 6321.048.576
Thứ 76416.777.216
Thứ 8128268.435.456

Từ nhị phân sang thập phân, bằng tay

Ghi mỗi chữ số cùng giá trị của hàng của nó và chỉ cộng những hàng có chữ số 1. Ví dụ với 1101: từ phải sang trái các hàng có giá trị 1, 2, 4 và 8.

  1. Viết số đó và bên dưới là giá trị của từng vị trí: 1 1 0 1 phía trên 8 4 2 1.
  2. Xem mỗi hàng có gì: một số 1 ở hàng 8, một số 1 ở hàng 4, một số 0 ở hàng 2 và một số 1 ở hàng 1.
  3. Bỏ qua những hàng có số 0 (ở đây là hàng 2).
  4. Cộng lại: 8 + 4 + 0 + 1 = 13. Vậy 1101 trong hệ nhị phân là 13 trong hệ thập phân.

Với nhiều chữ số hơn thì cũng như vậy: 11111111 là 128 + 64 + 32 + 16 + 8 + 4 + 2 + 1 = 255, giá trị lớn nhất chứa được trong 8 bit. Và 10110110 là 128 + 32 + 16 + 4 + 2 = 182.

Từ thập phân sang nhị phân, bằng các phép chia liên tiếp

Chia số đó cho 2 hết lần này đến lần khác, ghi lại số dư của mỗi phép chia (luôn là 0 hoặc 1), cho đến khi thương bằng 0. Các số dư, đọc từ dưới lên trên, chính là số nhị phân. Ví dụ với 45:

Đọc các số dư từ dưới lên trên ta được 101101. Để kiểm tra, hãy cộng: 32 + 8 + 4 + 1 = 45.

Có một phương pháp khác mà nhiều người thích hơn: trừ dần các lũy thừa của 2 từ lớn đến nhỏ. Với 200: chứa được 128 (còn 72), chứa được 64 (còn 8), không chứa được 32 và 16, nhưng chứa được 8 (còn 0). Các hàng được dùng là 128, 64 và 8, nên 200 = 11001000.

Thập lục phân: mười sáu chữ số và một bảng để tra

Vì không có chữ số nào cho 10 đến 15, người ta dùng các chữ cái A, B, C, D, E và F. Một chữ số thập lục phân tương đương chính xác bốn bit (một «nibble»), và vì thế rất tiện: một byte, gồm 8 bit, chỉ cần hai chữ số thập lục phân.

Để đổi từ thập lục phân sang thập phân, nhân mỗi chữ số với lũy thừa của 16 ở hàng của nó rồi cộng lại. Ví dụ, 3F = 3 × 16 + 15 = 63 và A3 = 10 × 16 + 3 = 163.

Từ 0 đến 15 trong bốn hệ cơ số mà công cụ hiển thị.
Thập phânNhị phân (4 bit)Bát phânThập lục phân
0000000
1000111
2001022
3001133
4010044
5010155
6011066
7011177
81000108
91001119
10101012A
11101113B
12110014C
13110115D
14111016E
15111117F

Vì sao dùng thập lục phân: byte, màu sắc và địa chỉ

Một byte là 8 bit và có giá trị từ 0 đến 255 (00000000 đến 11111111). Viết bit bằng tay vừa chậm vừa dễ sai; trong thập lục phân, cùng một byte chỉ là hai ký tự, từ 00 đến FF. Để đổi từ nhị phân sang thập lục phân, chia các bit thành nhóm bốn từ bên phải và thay mỗi nhóm bằng chữ số trong bảng. Ví dụ: 11010111 được tách thành 1101 và 0111, là D và 7, nên bằng D7. Theo thập phân là 13 × 16 + 7 = 215.

Trường hợp quen thuộc nhất là màu trên web. Trong #FF8800 có ba byte: FF cho màu đỏ (255), 88 cho màu xanh lá (136) và 00 cho màu xanh dương (0). Đó là màu cam đậm: đủ cả màu đỏ, hơn một nửa màu xanh lá và không có màu xanh dương. Thập lục phân cũng xuất hiện trong địa chỉ bộ nhớ, mã lỗi và định danh mạng.

Từ văn bản sang nhị phân với ASCII

Máy tính lưu mỗi chữ cái dưới dạng một con số, và con số đó dưới dạng bit. Trong bảng ASCII, chữ A là 65, mà trong nhị phân 8 bit là 01000001. Từ «Hi» gồm hai chữ cái: H là 72 (01001000) và i là 105 (01101001), nên được viết là 01001000 01101001. Với «Hola» là 72, 111, 108 và 97, tức 01001000 01101111 01101100 01100001, hay trong thập lục phân là 48 6F 6C 61.

Công cụ dùng bảng mã UTF-8: với các chữ cái tiếng Anh cơ bản, mỗi ký tự chiếm một byte 8 bit, nhưng một chữ có dấu như ơ hay ế, hoặc một emoji, chiếm nhiều byte nên cho ra hơn 8 bit. Ví dụ, chữ ñ là hai byte: 11000011 10110001 (C3 B1 trong thập lục phân).

Cách làm tất cả những việc này với công cụ

Công cụ đổi «Nhị phân, thập phân và thập lục phân» dùng để kiểm tra các phép tính tay của bạn hoặc xử lý số dài mà không sai sót.

  1. Nhập số vào ô của cơ số tương ứng: «Thập phân (cơ số 10)», «Nhị phân (cơ số 2)», bát phân hoặc «Thập lục phân (cơ số 16)». Ba ô còn lại tự điền.
  2. Nếu chữ số không thuộc cơ số đó (ví dụ số 2 trong nhị phân), công cụ sẽ báo cho bạn.
  3. Với văn bản, hãy gõ vào ô «Văn bản» và xem «Nhị phân (8 bit mỗi ký tự)» cùng thập lục phân theo byte. Bạn cũng có thể dán các bit theo nhóm 8 để quay lại văn bản.
  4. Với các cơ số lạ, dùng «Cơ số bất kỳ (từ 2 đến 36)»: chọn cơ số gốc, cơ số đích và nhập số.

Giới hạn: công cụ chỉ đổi số nguyên không âm (không có phần thập phân và dấu) và không tự thêm các số 0 ở đầu, nên nếu bạn muốn đúng 8 bit thì phải tự bổ sung (13 là 00001101). Không có gì bạn nhập rời khỏi trình duyệt của bạn.

Những lỗi thường gặp

Bài tập giải sẵn để luyện tập

Hãy thử giải từng bài trước khi xem đáp án rồi kiểm tra lại bằng công cụ.

Câu hỏi thường gặp

Làm sao đổi 1101 từ nhị phân sang thập phân?

Cộng các giá trị của những hàng có số 1: 8 + 4 + 1 = 13. Chữ số thứ hai từ bên phải là 0 nên không cộng 2.

255 là bao nhiêu trong nhị phân và thập lục phân?

255 là 11111111 trong nhị phân và FF trong thập lục phân. Đây là giá trị lớn nhất chứa được trong một byte 8 bit.

Vì sao thập lục phân dùng chữ cái?

Vì nó cần mười sáu ký hiệu khác nhau mà hệ thập phân chỉ có mười (0 đến 9). Vì thế A là 10, B là 11, C là 12, D là 13, E là 14 và F là 15.

Với 8 bit có thể viết được bao nhiêu số khác nhau?

256, từ 0 đến 255. Nói chung, với n bit có thể biểu diễn 2 mũ n giá trị.

Công cụ có đổi số âm hoặc số có phần thập phân không?

Không, chỉ số nguyên không âm. Với văn bản, công cụ dùng UTF-8 nên chữ có dấu và emoji cho ra hơn 8 bit.