Как на самом деле возвращается в C? - PullRequest
1 голос
/ 13 января 2020

DAT_1001b50 C - это число, и я немного сдвигаю его. Теперь у меня есть вопрос о следующей строке:

return DAT_1001b50C >> 0x10 & 0x7fff;

будет ли эта строка возвращать

DAT_1001b50C >> 0x10
and
DAT_1001b50C >> 0x7fff

или это вернет

(DAT_1001b50C >> 0x10) >> 0x7fff

1 Ответ

6 голосов
/ 13 января 2020

Ни. DAT_1001b50C >> 0x10 & 0x7fff - это (DAT_1001b50C >> 0x10) & 0x7fff. Это сдвигает значение DAT_1001b50C правильных 16 битов и выполняет побитовое И с 0x7fff, который сохраняет младшие 15 битов и очищает оставшиеся биты.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...