我正在查看一些代码,这些代码输出一个带有前置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位但不明白=
的作用,据我所知,无法搜索“>> = “找出它意味着什么。
答案 0 :(得分:16)
i >>= 1
只是i = i >> 1
的简写,与i += 4
<{1}}
编辑:具体来说,这些都是compound assignment operators的例子。