请找到一个大于2022的最小数,这个数转换成二进制后,最低的6个二进制位全为0。找出这个十进制的最小数。
为什么这个方法我打出来会报错呢?第13行为什么要让x/= 2
感觉你的check应该改成这样
static boolean check(int x) {
int num = 0;
while (x != 0) {
if (x % 2 == 0) {
num++;
} else {
break;
}
if (num >6) {
break;
}
x /= 2;
}
return num >= 6;
}