2011-10-05 3 views
5

나는 그들이 숫자를 사용하여 chmod를 사용하여 권한을 설정하는 방법을 어떻게 생각해 냈는지 궁금합니다.여러 정보를 단일 번호로 검색 하시겠습니까?

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

사람들의 모든 합이 고유 권한을 부여 : 예를 들어

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 

은 다음과 알고리즘이 있습니까? 예를 들어 10 개의 항목이 있고 사람에게 번호를주고 싶다고 말하면 그 번호로 내가 선택한 항목을 말할 수 있습니다.

+0

가까운 투표가 맞지 않은 이유는 무엇입니까? 이것은 나에게 완벽하게 합법적 인 질문처럼 보입니다. –

+0

@AasmundEldhuset : 완벽하게 합법적 인 질문이지만 내게는 다른 SE 사이트에 더 적합 할 것 같습니다. 나는 유닉스를 고를 것이지만 그것은 옵션이 아니다. 그래서 SU. – derobert

+0

롤! 이것은 단지 이진수입니다. 컴퓨터 세계에 오신 것을 환영합니다. – Shahbaz

답변

4

Binary system. 나는. 1, 2, 4, 8, 16 등을 각각 0 또는 1 자리 숫자로 나타냅니다. 마지막 숫자는 2^0=1을 나타내며 두 ​​번째 숫자는 2^1=2을 나타내고 다음 숫자는 2^2=4, 다음 숫자는 2^3=8을 나타냅니다.

이제 각 숫자에 작업 (읽기/쓰기/쓰기)을 연결합니다.

놀랍게도 사실은 다음과 같습니다. 두 가지 옵션 만있는 경우 (예 : 참 또는 거짓 만있는 것이 아니라) 더 많은 옵션이있는 경우이 패턴을에 맞게 조정할 수 있습니다. ternary system. 또한 에 대해이 패턴을 적용 할 수 있습니다. 인간 시스템은 기본 10에서 작동합니다.

+0

당신은 내 업보트를 얻지 만, 이것을 확장해야합니다. 예를 들어, 어떤 비트가 어떤 사용 권한 (사용자, 그룹 및 기타, 또한 세트 ID 및 스티키 비트)에 매핑되는지 표시해야합니다. – derobert

+0

@derobert : 질문은 유닉스 권한에 관한 것이 아닙니다. 그것은 단지 그것에 의해 영감을 받았습니다. 질문은 여러 부울 값을 하나의 정수로 나타내는 일반적인 개념에 관한 것입니다. –

+0

@AasmundEldhuset : 충분히 유감스럽게도, 유닉스에 관한 더 많은 질문으로 읽었습니다. 나는 약간의 편집이 순서에 있을지도 모른다라고 생각한다. 또한베이스 -2에 고유하지 않다고 말할 수 있습니다. 예를 들어베이스 10에 OP가 10 개의 항목을 인코딩 할 수 있습니다 (모든 사람들이베이스 10을 알고 있기 때문에 실제로 좋은 예가됩니다). – derobert

관련 문제