Хорошо, я действительно не понимаю, как работает этот цикл, его логическое утверждение доставляет мне больше всего неприятностей.permissions - это постоянное значение, которое я назначил 127. Roles.java содержит постоянные значения, которые определяют, какие роли могут иметь доступ к определенным страницам веб-сайта.Проблема в том, что логическое утверждение возвращает истину, когда битовая маска равна единице.Как это возможно?
for (int bitMask = 1; bitMask <= 0x8000; bitMask *= 2)
{
boolean hasBit = (permissions & bitMask) != 0;
if (hasBit)
{
String role = Roles.getRole(bitMask);
if (role != null)
{
//Do stuff
}
else
{
//No role assigned
}
}