У меня есть 8 объектов, которые мы будем называть «огни». Каждый источник света может быть включен или выключен (0 или 1). Каждый источник света имеет индекс (0-7).
Я не знаком с побитовыми операциями в Java, но я думаю, что следующий код проверяет, правильно ли включен или выключен источник света:
int value = 128;
int index = light.getIndex();
boolean lightIsOn = (value >> (index & 0x1) == 1);
В настоящее время я сталкиваюсь с проблемой невозможности включить все огни. Например, если лампочка 0 включена, а я включаю лампу 1, лампочка 1 сообщит, что она включена, но лампочка 0 сообщит, что она выключена. Это с помощью следующего кода:
if (!lightIsOn) {
value = (value | 1 << index);
}
Я знаю, что неправильно его установил. Я просто не могу понять, как это сделать. Этот материал не совсем вычисляется в моем мозгу. Я прочитал о всех побитовых операторах, и это все еще не имеет смысла для меня. Может кто-нибудь объяснить мне, что я делаю не так?