Java Bit Manipulation - Что делает (num >> = 1)? - PullRequest
9 голосов
/ 08 апреля 2011

Я искал какой-то код, который выводит число в двоичную форму с добавленными нулями.

    byte number = 48;
    int i = 256; //max number * 2
    while( (i >>= 1) > 0) {
        System.out.print(((number & i) != 0 ? "1" : "0"));
    }

и не понимал, что делает i >>= 1.Я знаю, что i >> 1 сдвигается вправо на 1 бит, но не понимал, что делает =, и, насколько мне известно, невозможно выполнить поиск ">> =", чтобы выяснить, что этозначит.

1 Ответ

17 голосов
/ 08 апреля 2011

i >>= 1 - это сокращение от i = i >> 1 точно так же, как i += 4 - сокращение от i = i + 4

РЕДАКТИРОВАТЬ: В частности, это оба примера составных операторов присваивания .

...