假设我们有一个函数,可以采用正整数或负整数二进制字符串,并计算到达最左边有效位所需的右移次数
我有这样的东西
int shiftCount(int x){
int count = 0;
int temp = x;
while((temp!=1) || (temp!=-1)){ //if negative int, terminate at first -1
count+=1;
temp=temp>>1;
}
return count;
}
这不会返回我想要的。它最终陷入一个永无休止的循环,我认为这是因为它试图满足这两个条件。有没有一种实际的方法可以在 while 循环中轻松测试 2 个不同的有符号值,或者我必须制作 2 个单独的条件语句,每个条件语句都有自己的 while 循环?
最佳答案
您的 or 始终为真。由于 temp
不能同时为 1
和 -1
,因此它始终要么不是 1
,要么不是 -1
.
关于c - (C 语言) 有没有办法在 while 循环中放置两个不同的可能整数值的条件参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42196830/