2014-06-23 3 views

답변

2

당신은 의미 :

blockAverage >>= blockSize; 

귀하의 코드가 blockAverage를 변경하지 않습니다; blockAverage의 값을 blockSize 비트만큼 오른쪽으로 이동시킨 다음 결과를 버리십시오.

당신은 (그것을 명확하게 blockAverage에 새 값을 할당, 위의 물론, blockAverage = blockAverage >> blockSize; 즉 약자를) 변화 변수의 값으로 할당을 사용해야합니다.

+0

에 의해 blockAverage을 수정할 수 있습니다이 객관적 C 것입니까? 나는 마이크로 컨트롤러로 작업 할 때 x >> y라는 문제가 있다는 것을 기억하지 못합니다. –

+0

@ 존 모 피트 (JohnMoffitt) 당신의 기억은 약간 그늘 지어 야합니다. 다른 이진 연산자와 마찬가지로'>>'는 ist라는 것을 알고 있습니다. 당신은'int a = 3, b = 4; a + b;'a '도 7과 같도록 만드시겠습니까? – unwind

+0

전혀 아닙니다. 제 기억을 고쳐 주셔서 감사합니다. –

1

>>은 비트 단위 오른쪽 시프트 연산자입니다. 표현식 blockAverage >> blockSize;의 값을 지정해야합니다. 당신은 하나

blockAverage = blockAverage >> blockSize; 

또는

blockAverage >>= blockSize; 
관련 문제