Что означает амперсанд при назначении переменной?(Джава) - PullRequest
4 голосов
/ 20 июня 2011

Что означает амперсанд в этом коде?

int clothes = (random.nextInt(0x1000000) & 0x7f7f7f);

1 Ответ

14 голосов
/ 20 июня 2011

Это оператор поразрядный И .

Работает с каждой битовой позицией независимо;выходной бит в позиции n равен только 1, если оба соответствующих входных бита в позиции n также равны 1.

В этом контексте 0x7f7f7fиспользуется как битовая маска .Наличие определенных битовых позиций в 0 означает, что соответствующие битовые позиции в clothes будут всегда равны 0. Все остальные битовые позиции будут принимать то же значение, что и random.nextInt(0x1000000).

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