안드로이드는 리눅스의 시스템을 따릅니다.
그래서 여러가지로 리눅스와 시스템이 매우 흡사합니다.
고로 파일 권한도 존재합니다.

여기서 더 자세하고 전문적인 걸 원하신다면 검색해서 찾아보시길!
이 포스팅은 그냥 왜 권한이 숫자로 표현되는가에 대한 겁니다.

여튼 권한이 왜 숫자로 표현되는가에 대해 설명드리자면,
일단 권한은 항상 이런 식으로 표기됩니다.

   Read Write Execute 
 Owner  V V V
 Group  V V  
 Others  V    


그런데 저게 어떻게 숫자로 표현되냐면,

간단히 말해서, 맨 윗 라인부터 2진수로 변환하고, 그걸 10진수로 변환해서 1자리씩 채워넣으면 됩니다.


설명의 보충을 위해서 위 표를 숫자로 변환해보죠.

일단 2진수로 다 변환해봅시다.
체크된 건 1, 체크 안된건 0으로 해서,

 1  1  1
 1  1  0
 1  0  0

이렇게 되죠? 이걸 다 한줄에 나열해봅시다. 순서는 Owner, Group, Others.

(111) (110) (100)

그리고 이걸 10진수로 변환하면

111은 2*2*2-1이니까 7
110은 111에서 -1한거니 6
100은 2*2해서 4입니다.

최종적으로 저 권한을 숫자로 표현하면 764가 되죠.

다른 것도 마찬가집니다. 시스템 파일에서 자주 사용하는 644를 예시로 들자면,

 V V  
 V    
 V    

이런 식으로 되어있을겁니다.
이걸 2진수로 변환하면

1 1 0
1 0 0
1 0 0

이렇게 되죠?
이걸 정리하면

(110) (100) (100)

그리고 이걸 10진수로 변환하면

110은 위에서 말했듯이 111(7)에서 1을 뺀거니 6
100은 2*2해서 4

최종적으로 644가 됩니다.

Posted by Edgestorm
: