Bộ chuyển đổi nhị phân sang bát phân
Bát phân vẫn còn sống trong quyền tệp Unix (chmod 755), tài liệu thời PDP cũ và một số bộ công cụ vi điều khiển. Công cụ này nhận bất kỳ chuỗi nhị phân nào, gom các bit ba cái một từ bên phải và ánh xạ mỗi nhóm thành một chữ số cơ số 8 từ 0 đến 7 — kèm tùy chọn thêm số 0 ở đầu cho các ngôn ngữ xem 0755 là hằng bát phân.
Cách chuyển nhị phân sang bát phân
-
1
Nhập giá trị nhị phân
Dấu cách bị loại bỏ. Độ dài nào cũng được; nhóm ngoài cùng bên trái tự động được thêm số 0 ở đầu cho đủ ba bit.
-
2
Gom bit thành nhóm ba từ bên phải
`111101100` trở thành `111 101 100`. Hướng gom rất quan trọng — luôn từ phải sang trái.
-
3
Ánh xạ từng nhóm ba bit
000 = 0, 001 = 1, 010 = 2, tới 111 = 7. Mỗi nhóm ba bit ánh xạ đúng một chữ số bát phân.
-
4
Đọc và sao chép kết quả
Chọn chữ số thô (`754`), dạng thêm số 0 ở đầu (`0754`) hoặc dạng có `0o` ở đầu (`0o754`) để tương thích Python 3 và Rust.
Bảng ánh xạ nhóm ba bit sang bát phân
| Nhị phân | Bát phân |
|---|---|
| 000 | 0 |
| 001 | 1 |
| 010 | 2 |
| 011 | 3 |
| 100 | 4 |
| 101 | 5 |
| 110 | 6 |
| 111 | 7 |
Ví dụ: quyền Unix
rwxr-xr-x nghĩa là chủ sở hữu có quyền đọc/ghi/thực thi, còn nhóm và những người khác có quyền đọc/thực thi. Dạng nhị phân là 111 101 101, gom trực tiếp thành bát phân 755 — đúng số bạn truyền cho chmod.
Khi nào bát phân hữu ích
- Quyền tệp:
chmod 644,umask 022,stat -c %ađều nói bằng bát phân. - Chuỗi escape:
\100trong C là bát phân cho@(64 thập phân). - Mã máy cũ: tài liệu PDP-8, PDP-11 và DEC đời đầu liệt kê mã lệnh bằng bát phân vì kích thước word của chúng là bội số của 3 bit.
- Đọc trực quan: nhóm ba bit dễ đọc nhanh hơn nhị phân mà không cần đầy đủ bảng chữ cái của thập lục phân.
Lưu ý dễ sai
- Số 0 ở đầu nghĩa là bát phân trong C:
0755là bát phân 755 (= thập phân 493),755là thập phân 755. Hãy kiểm tra ngôn ngữ của bạn trước khi dán. - JavaScript đã bỏ bát phân kiểu cũ: chế độ strict từ chối
0755. Dùng0o755thay thế. - Hướng gom nhóm: nếu bạn gom từ trái sang phải, kết quả sẽ sai với mọi chuỗi bit có độ dài không phải bội số của 3.
Câu hỏi thường gặp
Vì các cờ quyền nằm thành nhóm ba rất gọn (đọc, ghi, thực thi) cho từng vai trò (chủ sở hữu, nhóm, người khác). Mỗi nhóm ba bit ánh xạ 1-1 sang một chữ số bát phân, nên rwxr-xr-x đọc thành 755 trong một bước.
Với C, Perl và shell, dùng số 0 ở đầu. Với Python 3, Rust và Swift, dùng 0o. Với chmod trên dòng lệnh, không thêm gì ở đầu.
Số âm cần một độ rộng bit có dấu (bù hai). Hãy chỉ định độ rộng trước; nếu không công cụ sẽ xem mọi đầu vào là không dấu.
Không. Công cụ sẽ thêm số 0 ở đầu cho nhóm ngoài cùng bên trái đến đủ ba bit. 1111 trở thành 001 111, tức bát phân 17.
Công cụ liên quan
Trình tạo bảng màu ngẫu nhiên
Tạo bảng màu ngẫu nhiên từ 2 đến 15 mẫu màu, chọn phong cách rực rỡ, pastel, dịu hoặc tối, rồi sao chép mã HEX hoặc biến CSS.
Trình tạo bảng màu
Tạo bảng màu đơn sắc, tương đồng, bổ túc, bộ ba hoặc bộ bốn từ màu HEX gốc và xuất các biến CSS sẵn sàng sao chép.
Trình tạo chữ cái ngẫu nhiên
Tạo chữ cái A-Z ngẫu nhiên. Chọn số lượng, chữ hoa, chữ thường hoặc kiểu trộn, rồi dùng cho trò chơi, gợi ý bài tập hoặc hoạt động lớp học.
Trình định dạng JSON
Dán JSON để hiển thị với thụt lề 2 hoặc 4 dấu cách, rút gọn thành đầu ra compact, hoặc kiểm tra nhanh cú pháp trước khi sao chép kết quả.
Trình tạo màu ngẫu nhiên
Tạo từ 1 đến 50 màu HEX ngẫu nhiên kèm mẫu màu để xem trước, sao chép và dùng trong CSS, kiểm thử hoặc khám phá bảng màu.
Bộ chuyển đổi ASCII sang nhị phân
Chuyển bất kỳ chuỗi ASCII nào sang biểu diễn nhị phân. Mỗi ký tự thành tám bit, phân tách bằng khoảng trắng, sẵn để dán vào trace giao thức hoặc bài tập.