Получить несколько информации по одному номеру? - PullRequest
5 голосов
/ 05 октября 2011

Мне было интересно, как они нашли способ установки разрешений, используя 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 предметов, и я хочу дать человеку номер, и по этому номеру человек может сказать, какие предметы я выбрал.

1 Ответ

4 голосов
/ 05 октября 2011

Двоичная система . То есть Вы представляете 1, 2, 4, 8, 16 и т. д. каждый с 0 или 1 цифрой. Последняя цифра обозначает 2^0=1, вторая последняя цифра обозначает 2^1=2, следующая цифра обозначает 2^2=4, следующая цифра 2^3=8 и т. Д.

Теперь вы связываете действие (чтение / запись / запись) с каждой цифрой.

(Более или менее) удивительный факт заключается в следующем: если у вас нет только двух вариантов (то есть, если у вас нет просто true или false), но если у вас больше, вы можете адаптировать этот шаблон к троичная система . Более того, вы можете адаптировать этот шаблон для любой базы . Человеческая система работает на базе 10.

...