我试图在除以 2 直到数字等于 0 的同时打印所有底值,但我犯了一个错误并且从未更新过实际值。我使用的是右移运算符,但它并没有像预期的那样无限继续下去,而是将数字转换为二进制并反转了 32 位数字,并且从不打印任何值。 甚至二进制数也被转换回十进制... 谁能解释执行流程是如何发生的?我也在使用 eclipse IDE....
public static void main(String[] args) {
System.out.println(get(15)); //4026531840(output) is the decimal conversion of reversed 32
} //bit of 1111(15)
static String get(int l) {
int temp = l;
String store = "";
while(temp!=0) {
int i = temp >> 1;
System.out.println(i); //never worked
store = i + store;
}
return store;
}