Cách dùng công cụ dịch mã nhị phân
- Gõ hoặc dán chữ (một từ, tên của bạn, một lời nhắn) và mã nhị phân hiện ra ngay, mỗi byte là một nhóm 8 bit.
- Dán mã nhị phân để đọc ra chữ: các nhóm số 0 và 1 được tự nhận diện và đổi lại thành chữ. Bạn cũng có thể tự chọn chiều dịch.
- Chọn cách ngăn cách các byte: dấu cách (thông dụng nhất), không ngăn cách, dấu phẩy hoặc xuống dòng.
- Bấm Sao chép cạnh kết quả. Dòng thập lục phân cho thấy cùng các byte đó ở dạng ngắn mà lập trình viên hay dùng.
Mọi thứ chạy ngay trên trình duyệt của bạn; đoạn chữ không được gửi đi đâu.
Chữ biến thành mã nhị phân như thế nào
Máy tính lưu chữ dưới dạng số. Mỗi ký tự có một số hiệu trong chuẩn Unicode, gọi là điểm mã: A là U+0041, đ là U+0111, ệ là U+1EC7. Khi lưu hay gửi đi, các số hiệu này được đổi thành byte, và gần như mọi trang web, ứng dụng và tệp ngày nay đều dùng bảng mã UTF-8 cho việc đó. Một byte có tám bit, nên mỗi byte được viết bằng tám chữ số nhị phân.
UTF-8 dùng một byte cho 128 ký tự cơ bản của ASCII (chữ Latinh không dấu, chữ số, dấu câu thông dụng) và từ hai đến bốn byte cho mọi ký tự khác. Các bit đầu của mỗi byte cho biết độ dài ký tự: byte đứng một mình bắt đầu bằng 0; byte đầu của ký tự dài hơn bắt đầu bằng 110, 1110 hoặc 11110 (hai, ba hoặc bốn byte), còn mỗi byte theo sau bắt đầu bằng 10. Chữ tiếng Việt có dấu thanh như ệ, ở, ữ nằm ở vùng U+1EA0–U+1EF9 nên chiếm ba byte, còn đ, ư, ơ, â, ê, ô và một số chữ có dấu thường gặp trong các ngôn ngữ châu Âu như à, é, ã chiếm hai byte.
| Ký tự | Là gì | Điểm mã | Byte UTF-8 (hex) | Nhị phân |
|---|---|---|---|---|
| A | chữ A in hoa | U+0041 | 41 | 01000001 |
| à | a dấu huyền | U+00E0 | C3 A0 | 11000011 10100000 |
| đ | chữ đ | U+0111 | C4 91 | 11000100 10010001 |
| ư | chữ ư | U+01B0 | C6 B0 | 11000110 10110000 |
| ệ | ê dấu nặng | U+1EC7 | E1 BB 87 | 11100001 10111011 10000111 |
| 😀 | emoji | U+1F600 | F0 9F 98 80 | 11110000 10011111 10011000 10000000 |
Ví dụ từng bước
«Việt Nam 👋» có mười ký tự nhưng mười lăm byte:
01010110 01101001 11100001 10111011 10000111 01110100 00100000 01001110 01100001 01101101 00100000 11110000 10011111 10010001 10001011
Chữ V in hoa là số 86 = 64 + 16 + 4 + 2, nên các bit ứng với 64, 16, 4 và 2 bằng 1: 01010110. Chữ i là 105 = 64 + 32 + 8 + 1, tức 01101001. Chữ ệ (U+1EC7) cần ba byte, 11100001 10111011 10000111: byte đầu bắt đầu bằng 1110, báo hiệu ký tự ba byte, hai byte sau bắt đầu bằng 10. Dấu cách là 00100000 (32), và bàn tay vẫy chào U+1F44B chiếm bốn byte, byte đầu bắt đầu bằng 11110. Ở dạng thập lục phân, các byte đó là 56 69 E1 BB 87 74 20 4E 61 6D 20 F0 9F 91 8B.
Dấu tiếng Việt: dựng sẵn và tổ hợp
Cùng một chữ ệ có thể được lưu theo hai cách. Kiểu Unicode dựng sẵn dùng một điểm mã duy nhất, U+1EC7, nên ra ba byte như trên. Kiểu Unicode tổ hợp ghép chữ e với dấu nặng và dấu mũ riêng (U+0065, U+0323, U+0302), thành 5 byte: 01100101 11001100 10100011 11001100 10000010. Trên màn hình hai kiểu trông giống hệt nhau, nhưng mã nhị phân khác nhau. Bộ gõ như Unikey hay EVKey cho chọn bảng mã, và hầu hết mặc định là Unicode dựng sẵn. Nếu mã nhị phân của bạn dài hơn dự kiến, có thể đoạn chữ được gõ theo kiểu tổ hợp. Công cụ đếm «Số ký tự» theo chữ mà người đọc nhìn thấy, nên cả hai kiểu đều tính là một ký tự.
Bảng mã nhị phân chữ cái A–Z
Chữ in hoa và chữ thường chỉ khác nhau đúng một bit, bit có giá trị 32: A là 01000001, a là 01100001.
| Chữ in hoa | Nhị phân | Chữ thường | Nhị phân |
|---|---|---|---|
| A | 01000001 | a | 01100001 |
| B | 01000010 | b | 01100010 |
| C | 01000011 | c | 01100011 |
| D | 01000100 | d | 01100100 |
| E | 01000101 | e | 01100101 |
| F | 01000110 | f | 01100110 |
| G | 01000111 | g | 01100111 |
| H | 01001000 | h | 01101000 |
| I | 01001001 | i | 01101001 |
| J | 01001010 | j | 01101010 |
| K | 01001011 | k | 01101011 |
| L | 01001100 | l | 01101100 |
| M | 01001101 | m | 01101101 |
| N | 01001110 | n | 01101110 |
| O | 01001111 | o | 01101111 |
| P | 01010000 | p | 01110000 |
| Q | 01010001 | q | 01110001 |
| R | 01010010 | r | 01110010 |
| S | 01010011 | s | 01110011 |
| T | 01010100 | t | 01110100 |
| U | 01010101 | u | 01110101 |
| V | 01010110 | v | 01110110 |
| W | 01010111 | w | 01110111 |
| X | 01011000 | x | 01111000 |
| Y | 01011001 | y | 01111001 |
| Z | 01011010 | z | 01111010 |
Đọc mã nhị phân ra chữ
- Các nhóm tối đa tám bit, cách nhau bằng dấu cách, dấu phẩy hoặc xuống dòng, mỗi nhóm là một byte; nhóm ASCII 7 bit như 1001000 cũng đọc được.
- Một dãy dài không có dấu cách được cắt sau mỗi tám bit; khi đó tổng số chữ số phải chia hết cho tám.
- Nếu một byte không khớp quy tắc UTF-8 (thường do một bit bị đảo hoặc bị thiếu), công cụ báo lỗi kèm các byte ở dạng hex thay vì hiện chữ lỗi phông.
Dịch mã nhị phân hay chuyển đổi số nhị phân?
Đây là hai việc khác nhau. Công cụ này cho thấy chữ được lưu thế nào: ký tự «7» là byte 00110111 (ký tự số 55). Chuyển đổi nhị phân làm việc với số: số 7 ở hệ nhị phân là 111, còn 255 là 11111111. Bài tập Tin học về hệ cơ số thì dùng công cụ đổi số; chữ, tên và lời nhắn thì dùng công cụ dịch này.
Mẹo và giới hạn
- Mã nhị phân là cách mã hóa, không phải mật mã: ai cũng dịch ngược lại được, nên đừng dùng nó để giấu thông tin.
- Mỗi lần dịch tối đa 50.000 byte, khoảng 50.000 chữ không dấu; chữ có dấu chiếm hai hoặc ba byte nên được ít ký tự hơn.
- Muốn đếm số từ và ký tự của một đoạn văn, hãy dùng công cụ đếm số từ.
Câu hỏi thường gặp
Viết tên mình bằng mã nhị phân thế nào?
Gõ tên vào ô: mỗi chữ không dấu thành một byte. NAM là 01001110 01000001 01001101, còn «Nam» là 01001110 01100001 01101101 vì chữ thường khác chữ in hoa một bit. Chữ có dấu như ư, ơ, đ chiếm hai byte, chữ có dấu thanh như ằ, ữ chiếm ba byte.
01001000 01101001 nghĩa là gì?
Đó là «Hi»: 01001000 là số 72, chữ H, còn 01101001 là 105, chữ i. Dán bất kỳ mã nhị phân nào vào ô để đọc.
Vì sao chữ tiếng Việt có dấu lại dài hơn?
UTF-8 chỉ dành một byte cho 128 ký tự ASCII, mà trong đó không có chữ có dấu. Chữ ệ (U+1EC7) cần ba byte E1 BB 87, tức 11100001 10111011 10000111.
Vì sao emoji chiếm 32 bit?
Emoji có điểm mã lớn hơn U+FFFF, và UTF-8 cần bốn byte, tức 32 bit, để lưu chúng. Emoji có màu da hay emoji gia đình ghép nhiều điểm mã nên còn dài hơn.
Một byte có mấy bit?
Tám. Một byte lưu được 256 giá trị khác nhau, từ 00000000 đến 11111111 (0 đến 255), vì vậy chữ ở dạng nhị phân được viết theo từng nhóm tám chữ số.
Mã nhị phân có phải là mật mã không?
Không. Mã nhị phân chỉ là cách viết các byte bằng số 0 và 1, ai cũng dịch ngược lại được. Muốn giữ bí mật một tin nhắn thì cần mã hóa thật sự.
Cập nhật lần cuối: 15 tháng 10, 2026