2011-10-05 37 views
5

Tôi đã tự hỏi làm thế nào họ đã đưa ra cách thiết lập quyền sử dụng chmod bằng cách chỉ sử dụng số. Ví dụ:Truy xuất nhiều thông tin theo một số duy nhất?

1 is for execute 
2 is for write 
4 is for read 

Bất kỳ tổng của những cung cấp cho một giấy phép duy nhất:

2+4 = 6 lets you write and read. 
1+4 = 5 lets you execute and read 
1+2+4 = 7 lets you execute, read and write 

Có một thuật toán để điều này? Ví dụ: tôi có 10 mục và tôi muốn cung cấp cho một người một số và chỉ bằng con số đó, người đó có thể cho biết những mục nào tôi đã chọn.

+0

Tại sao lại bỏ phiếu kín? Điều này có vẻ như là một câu hỏi hoàn toàn hợp pháp đối với tôi. –

+0

@AasmundEldhuset: Đó là một câu hỏi hoàn toàn hợp pháp, nhưng với tôi có vẻ như nó vừa với một trang SE khác tốt hơn. Tôi muốn chọn Unix, nhưng đó không phải là một lựa chọn, vì vậy SU. – derobert

+0

Lol! Đây chỉ là số nhị phân. Chào mừng bạn đến với thế giới máy tính. – Shahbaz

Trả lời

4

Binary system. I E. bạn đại diện cho 1, 2, 4, 8, 16, v.v. với mỗi số 0 hoặc 1 chữ số. Chữ số cuối cùng là viết tắt của 2^0=1, chữ số thứ hai cuối cùng là viết tắt của 2^1=2, chữ số tiếp theo cho 2^2=4, chữ số tiếp theo cho 2^3=8 và vân vân.

Bây giờ, bạn liên kết một hành động (đọc/ghi/ghi) với mỗi chữ số.

Thực tế đáng ngạc nhiên là: Nếu bạn không có hai lựa chọn (nghĩa là nếu bạn không có đúng hay sai), nhưng nếu bạn có nhiều hơn, bạn có thể điều chỉnh mẫu này thành số ternary system. Hơn nữa, bạn có thể điều chỉnh mẫu này cho bất kỳ cơ sở nào. Hệ thống của con người hoạt động trên cơ sở 10.

+0

Bạn nhận được upvote của tôi, nhưng bạn thực sự nên mở rộng về điều này - ví dụ, hiển thị bit được ánh xạ tới các quyền (đối với người dùng, nhóm, và khác, và cũng cho các bit set-id và sticky). – derobert

+0

@derobert: Câu hỏi không thực sự về quyền của Unix; nó chỉ lấy cảm hứng từ nó. Câu hỏi đặt ra là về ý tưởng chung về việc biểu diễn một số giá trị boolean dưới dạng một số nguyên. –

+0

@AasmundEldhuset: Đủ công bằng, tôi đọc nó càng nhiều câu hỏi của Unix. Tôi đoán một số chỉnh sửa có thể được theo thứ tự. Ngoài ra, bạn có thể muốn đề cập đến điều này không phải là duy nhất cho base-2, bạn có thể, mã hóa 10 mục như OP đề cập trong cơ sở-10 (mà thực sự làm cho một ví dụ tốt, bởi vì tất cả mọi người biết cơ sở-10) ... (sửa: trông giống như bạn đã làm) – derobert

Các vấn đề liên quan