Страницы

Поиск по вопросам

пятница, 2 ноября 2018 г.

Побитовая операция

Что происходит в данной строке?
((in.read() & 0xFF) << 8 | (in.read() & 0xFF)) //
В первый in.read() поступает 78, во-второй 132
Насколько я понимаю, смещение, но можно по-подробнее? Ну или же где про это почитать?


Ответ

Происходит чтение чего-то - A= 0x......ab (байты A, количество разрядов зависит от определения функции in.read()) Выделяется младший байт A и смещается влево (во второй байт) 0x00ab00 Происходит новое чтение C= 0x......cd (байты C) Выделяется младший байт C и объединяется c предыдущим результатом. Получается 0x00abcd Это целочисленное значение, младшее слово которого содержит оба результата чтения. Для приведённого примера чтения 78 и 132 получится 20100 (78*256+132)

Комментариев нет:

Отправить комментарий