-1
그래서(C 언어) while 루프에서 두 개의 서로 다른 가능한 정수 값에 대한 조건부 인수를 넣는 방법이 있습니까?
나는이
같은 것을 가지고 우리가 양 또는 음의 정수 이진 문자열 중 하나를 가지고는 왼쪽 최상위 비트에 도착하는 데 걸리는 바로 변화의 양을 계산 할 수있는 기능을 가지고 말할 수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 개의 다른 서명 된 값을 쉽게 테스트 할 수있는 실제 방법이 있습니까? 아니면 각각의 while 루프를 사용하여 2 개의 별도 조건문을 만들어야합니까?
'||'대신'&&'를 의미합니까? '임시! = 1 || temp! = -1'은 temp가 1이 아니거나 -1이 아니라는 것을 의미합니다. 물론 항상 true입니다. –
이와 같은 경우 [De Morgan 's Laws] (https://en.wikipedia.org/wiki/De_Morgan's_laws)를 기억하는 것이 도움이 될 수 있습니다. –
두 경우 모두 올바르게 테스트 할 예정입니까? –