我看了一些输出带有前导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
向右移动一位,但不理解=
的作用。据我所知,无法搜索" >>=" 来了解其含义。
我看了一些输出带有前导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
向右移动一位,但不理解=
的作用。据我所知,无法搜索" >>=" 来了解其含义。
while((i >>>= 1) != 0)
,因为当前循环如果给出i = 1 << 31
将不会执行任何操作,同时你永远无法打印出32位数的最高位。 - Peter Lawrey