Я не уверен, как сформулировать topi c для этого вопроса, потому что я новичок в битовой манипуляции и действительно не понимаю, как она работает.
Я нахожусь в процессе реверс-инжиниринга игровое приложение просто чтобы посмотреть, как оно работает, и захотело выяснить, как именно оператор '&' используется в методе.
Частичный код:
int n = (random numbers will be provided below)
int n2 = n & 1920 // interested in this line of code
switch (n2){
//ignore n2 value assignment inside of cases
case 256: {
n2 = 384;
break;
case 384: {
n2 = 512;
break;
case 512: {
n2 = 0
break;
Тестовые значения:
Input Values | Output Values | Substituting Values
n = 387 | n2 = 384 | ( 387 & 1920 ) = 384
n = 513 | n2 = 512 | ( 513 & 1920 ) = 512
n = 12546 | n2 = 256 | ( 12546 & 1920 ) = 256
n = 18690 | n2 = 256 | ( 18690 & 1920 ) = 256
На основании этого варианта использования у меня есть несколько вопросов:
Что делает оператор & в этом примере?
- Мне кажется, что большинство значений округляется до ближайшего битового интервала, за исключением чисел, превышающих 10000
Что такого важного в номер 1920
?
Как они пришли к этому номеру, чтобы получить заданный c битовый интервал? (если можно выяснить)