这是死循环
#include <stdio.h>
int main() {
int i = 0;
int n = 0;
scanf("%d", &n);
while (1) {
if (n > 1) {
i = i + 1;
n = n / 2;
} else if (n > 0) {
n = 2 * n;
} else {
printf("i=%d\n", i);
break;
}
}
}
这是个死循环吧,只要输入的n值大于0。流程图画的有问题
语法格式为:需要移位的数字 << 移位的次数。
移位规则:
正数:
负数:
右移操作符也可以理解为右移一位相当于除2,右移n位相当于除以2的n次方。(取整)