Java位操作 - (num>> = 1)做什么?

时间:2011-04-08 03:21:41

标签: java bit-manipulation bit-shift

我正在查看一些代码,这些代码输出一个带有前置0的二进制形式的数字。

    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 个答案:

答案 0 :(得分:16)

i >>= 1只是i = i >> 1的简写,与i += 4 <{1}}

的缩写相同

编辑:具体来说,这些都是compound assignment operators的例子。