Bát phân sang nhị phân
Đổi từng chữ số bát phân sang ba bit nhị phân tương ứng.
Khi bạn chạy lệnh chmod 755 trên một tập lệnh hoặc dùng chmod 644 cho một tệp tài liệu thông thường, hệ thống sẽ gán các quyền truy cập khác nhau. Những con số quen thuộc đó thuộc hệ bát phân, và lý do định dạng này vẫn tồn tại trong lập trình là vì mỗi chữ số ánh xạ chuẩn xác thành ba công tắc nhị phân.
Cơ chế phân quyền bát phân trong hệ thống Unix
Mỗi tệp trên Unix có ba cờ quyền gồm đọc, ghi và thực thi. Mỗi cờ thực chất là một công tắc nhị phân bật hoặc tắt. Ba công tắc nhị phân này tạo ra tám trạng thái kết hợp, vừa vặn với phạm vi biểu diễn của một chữ số bát phân từ 0 đến 7.
Đây chính là lý do tiện ích chmod sử dụng hệ bát phân thay vì các hệ đếm khác. Mỗi chữ số biểu diễn trọn vẹn ba bit quyền. Hệ thập lục phân sẽ chiếm bốn bit và thừa một bit không cần thiết, trong khi hệ thập phân không thể ghép gọn gàng vào các bit nhị phân.
Bảng đối chiếu chữ số bát phân sang nhị phân
| Chữ số bát phân | Nhị phân | Quyền truy cập |
|---|---|---|
| 0 | 000 | không đọc, không ghi, không thực thi |
| 1 | 001 | chỉ thực thi |
| 2 | 010 | chỉ ghi |
| 4 | 100 | chỉ đọc |
| 5 | 101 | đọc và thực thi |
| 6 | 110 | đọc và ghi |
| 7 | 111 | đọc, ghi và thực thi |
Phân tích mã lệnh chmod 755 và 644 dưới dạng nhị phân
Lệnh chmod 755 có ba chữ số lần lượt cho chủ sở hữu, nhóm và người dùng khác. Chữ số 7 tương ứng với chuỗi 111 trong nhị phân, nghĩa là chủ sở hữu có đủ quyền đọc, ghi và thực thi. Hai chữ số 5 tương ứng với 101, cấp quyền đọc và thực thi mà không có quyền ghi.
Lệnh chmod 644 tách thành ba phần 6, 4 và 4. Chữ số 6 hình thành từ phép cộng (4 + 2) tương ứng với 110 nhị phân, đại diện cho quyền đọc và ghi của chủ sở hữu. Mỗi chữ số 4 tương ứng 100, tức là chỉ đọc đối với nhóm và người khác. Quy tắc ánh xạ ba bit này chi phối mọi tham số quyền tệp.
Các bước chuyển đổi số bát phân sang nhị phân
- Tách riêng từng chữ số bát phân từ trái sang phải.
- Đổi mỗi chữ số thành đúng ba bit nhị phân, thêm số 0 ở đầu nếu cần — ví dụ số 2 chuyển thành 010 thay vì 10.
- Xếp các nhóm ba bit cạnh nhau theo đúng thứ tự ban đầu.
- Nhận kết quả nhị phân hoàn chỉnh, giữ nguyên vẹn các bit mà không bỏ sót giá trị.
Thắc mắc thường gặp về chuyển đổi bát phân sang nhị phân
Vì sao mỗi chữ số bát phân luôn tương ứng đúng ba bit nhị phân?
Bởi vì ba bit nhị phân tạo ra tám giá trị phân biệt từ 0 đến 7, đúng bằng phạm vi của một chữ số bát phân. Sự ăn khớp này giúp việc chuyển đổi diễn ra trực tiếp theo nhóm bit mà không cần thực hiện phép chia phức tạp.
Tham số chmod 777 có ý nghĩa gì trong hệ nhị phân?
Mỗi chữ số 7 tương đương với 111 nhị phân, do đó 777 cấp đầy đủ quyền đọc, ghi và thực thi cho cả chủ sở hữu, nhóm cùng những người khác. Thiết lập mở này thường chỉ phù hợp khi kiểm thử tạm thời.
Tại sao người ta không nhập thẳng chuỗi nhị phân khi phân quyền?
Việc ghi nhớ và nhập một chuỗi chín bit nhị phân liên tiếp rất dễ nhầm lẫn so với việc gõ ba chữ số bát phân. Hệ bát phân giữ trọn vẹn thông tin bit trong một định dạng ngắn gọn hơn nhiều.
Dãy phân quyền bốn chữ số bát phân có điểm gì khác?
Chữ số đầu tiên đứng trước ba chữ số quen thuộc dùng để kích hoạt các cờ đặc biệt như setuid, setgid và sticky bit. Mỗi cờ này cũng được quản lý bởi một bit riêng biệt ngoài các quyền đọc, ghi, thực thi thông thường.
Công cụ này có xử lý các số bát phân không thuộc dạng phân quyền không?
Có. Quy tắc chuyển đổi toán học giữa bát phân và nhị phân luôn giống nhau cho mọi con số, dù phân quyền tệp là trường hợp ứng dụng thực tế phổ biến nhất.