Есть массив байт byte[10]. В одном из элементов массива находится байт, биты которого содержат информацию об успешном/неудачном исходе операции. Другими словами, требуется определить второй бит (если считать слева) в байте. Как это можно сделать? С побитовыми операция знаком слабо, но после ознакомления с этой темой, всё равно не нашёл ответа на свой вопрос. Подскажите как это сделать или дайте пример
byte b;
//blah-blah
if((b & 2) > 0)
System.out.println("Bingo! Operation is successful");
else
System.out.println("Sorry, operation failed...");
Как проверить бит в байте побитовой операцией уже написал @Barmaley.
Для упрощения побитовых операций можно использовать BitSet:
byte[] arr = new byte[10];
//инициализация arr
BitSet bits = BitSet.valueOf(arr);
if(bits.get(2)) { //2 - номер бита во всем массиве байтов
//действие
}
Если остальные байты не разбираются можно передать массив из одного байта:
BitSet bits = BitSet.valueOf(new byte[]{ arr[x]});
Хотя ответ default locale мне нравиться больше, так как он более читабельный неопытному юзеру, я опишу еще две возможности оперировать с побитовыми операциями.
1) 2 бит слева это 7 бит если считать со стороны наименьшего значащаго бита(справа). Лучше практикой считаеться указывать именно положения бита слева. Шифтим (сдвигаем) наш байт направо на 6 значений. Делаем "& 1" тем самым обнуляем все значения левее самого правого бита. Этот код дает нам значение нужного бита. ссылка
(my_byte >> 6) & 1;
2) Делаем логическую операцию "И" с маской 01000000 (что в десятичной форме равно 64) и проверяем равенство её нулю. Тем самым все значения кроме 7 бита будут аннулированы, а 7 оставит свое значение. Т.е. если он был ноль, то все чило будет 0, если было один, то число будет больше 0 (а именно 64).
(my_byte & 64) > 0;
Как развивать веб-проекты в 2026 году: технологии, контент E-E-A-T и факторы доверия
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники