Извинения. Я даже не уверен, что здесь использую правильную терминологию.Простой способ вычисления значений в битовой маске?
У меня есть ряд конфиденциальных документов, и я создаю битовую маску (?), Чтобы представлять, какие из этих документов может просматривать данный пользователь. (1 представляет собой Doc1, 2 представляет Doc2, 4 представляет Doc3, 8 представляет Doc4, 16 представляет Doc5 и т. Д.)
Таким образом, если пользователь может просматривать документы 1, 2 и 5, битмаска будет равна 19.
Где я сейчас действительно, однако, это то, как обратить вспять вычисление отдельных значений, «сохраненных» в битовой маске. В настоящее время я использую
if($docs2view==1) {
$nextdoc = 1;
}
if($docs2view==2) {
$nextdoc = 2;
}
. . .
if($docs2view==127) {
$nextdoc = 1;
}
, который ДЕЙСТВИТЕЛЬНО утомительно и явно очень неэффективен. Может ли кто-нибудь указать мне на правильный путь?
Спасибо, Пэдди! Но мне нужно только самое низкое значение, которое оценивает true. Как я могу остановить цикл, как только он обнаружит это? –
Я отредактировал, чтобы показать, как вы можете это сделать. – paddy
Удивительный! Большое спасибо за помощь! –