Cách sử dụng
- Chọn Mã hóa để chuyển văn bản sang nhị phân, hoặc Giải mã để chuyển nhị phân trở lại thành văn bản.
- Nhập hoặc dán văn bản hay các chữ số nhị phân, hoặc mở một tệp. Kết quả được cập nhật ngay khi bạn gõ.
- Chọn dấu phân cách cho các nhóm 8 bit: Dấu cách, Không, Dấu phẩy hoặc Xuống dòng.
- Đổi Bảng mã nếu văn bản của bạn không phải UTF-8, rồi sao chép hoặc tải xuống kết quả.
Văn bản trở thành nhị phân như thế nào
Máy tính lưu văn bản dưới dạng byte. Một bảng mã như UTF-8 ánh xạ mỗi ký tự thành một hoặc nhiều byte, và mỗi byte là một số từ 0 đến 255. Viết ở cơ số 2, số đó cần tối đa tám chữ số, tức tám bit. Công cụ này viết mỗi byte thành đúng tám bit và giữ lại các số 0 ở đầu, nhờ đó mọi nhóm có cùng độ rộng và mã nhị phân có thể được đọc lại mà không phải đoán byte này kết thúc và byte tiếp theo bắt đầu ở đâu.
Chữ cái tiếng Anh, chữ số và dấu câu thông thường chỉ chiếm một byte trong UTF-8, nên mỗi ký tự trở thành một nhóm 8 bit. Các ký tự khác chiếm nhiều hơn: chữ có dấu như é dùng hai byte, phần lớn chữ Hán và chữ Nhật dùng ba byte, còn emoji dùng bốn byte, nên chỉ một emoji đã thành 32 bit. Nếu muốn mỗi ký tự là một byte với văn bản Tây Âu, hãy chọn ISO-8859-1 hoặc Windows-1252 trong menu Bảng mã.
Dịch mã nhị phân trở lại thành văn bản
Ở chế độ Giải mã, hãy dán các bit thành từng nhóm, phân tách bằng dấu cách, dấu phẩy hoặc xuống dòng. Các nhóm đã được phân tách có thể bỏ số 0 ở đầu, nên đầu ra từ những công cụ in ASCII 7 bit cũng dùng được. Một chuỗi số 0 và 1 liền mạch sẽ được chia thành các nhóm 8 bit, vì vậy độ dài của nó phải là bội số của 8. Mọi ký tự khác, hoặc nhóm lớn hơn 11111111 (255), đều được báo lỗi kèm theo vị trí.
Sau đó các byte được đọc theo bảng mã đã chọn. Hãy chọn đúng bảng mã đã dùng để tạo ra mã nhị phân, hoặc chuyển đầu ra sang Hex để xem các byte gốc.
Chuyển văn bản sang nhị phân trong mã nguồn
# Python
' '.join(f'{b:08b}' for b in 'Hi'.encode()) # '01001000 01101001'
bytes(int(g, 2) for g in '01001000 01101001'.split()).decode() # 'Hi'
// JavaScript
[...new TextEncoder().encode('Hi')]
.map(b => b.toString(2).padStart(8, '0')).join(' ') // '01001000 01101001'
Đặc tả
| Bảng ký tự | 0 1 |
|---|---|
| Kích thước đầu ra | 8 chữ số cho mỗi byte (800%) |
| Phần đệm | Không có |
| Tiêu chuẩn | Biểu diễn nhị phân theo vị trí |
| Phân biệt hoa thường | Không |
Ví dụ
| Đầu vào (UTF-8) | Đầu ra |
|---|---|
Hello, World! | 01001000 01100101 01101100 01101100 01101111 00101100 00100000 01010111 01101111 01110010 01101100 01100100 00100001 |
Base64.is | 01000010 01100001 01110011 01100101 00110110 00110100 00101110 01101001 01110011 |
你好 | 11100100 10111101 10100000 11100101 10100101 10111101 |
Câu hỏi thường gặp
Một ký tự gồm bao nhiêu bit?
Trong ASCII, và với chữ cái tiếng Anh trong UTF-8, một ký tự là một byte, tức 8 bit. Các ký tự khác chiếm 16, 24 hoặc 32 bit trong UTF-8. Trong UTF-16, mỗi ký tự chiếm ít nhất 16 bit.
Có thể chuyển nhị phân sang văn bản khi không có dấu cách không?
Có, miễn là chuỗi là một dãy liền mạch gồm các nhóm 8 bit đầy đủ. Nếu các nhóm có ít hơn 8 chữ số do số 0 ở đầu đã bị lược bỏ, hãy giữ chúng được phân tách bằng dấu cách hoặc dấu phẩy để bộ giải mã biết mỗi byte kết thúc ở đâu.
Chuyển văn bản sang nhị phân có giống chuyển một số sang nhị phân không?
Văn bản của tôi có bị tải lên đâu không?
Không. Quá trình chuyển đổi diễn ra hoàn toàn trong trình duyệt, nên văn bản và tệp bạn chuyển đổi không bao giờ rời khỏi thiết bị của bạn.