2011-12-27 3 views
0

Я пишу код для вычисления числа 1s, появившихся в формате дополнений 2 целого числа. Однако, когда я использую оператор побитового сдвига в Java, я получаю ошибку синтаксиса:Оператор побитового сдвига в Java: синтаксическая ошибка с "= >>"?

class suan { 
    int bitCount(int inputInt) { 
     if (inputInt == 0) 
      return 0; 
     else if (inputInt > 0) { 
      int c = 0; 
      int origin = inputInt; 
      for (int i=0; i<32; i++) { 
       inputInt=>>1; 
       if (origin == inputInt*2) 
        c++; 
       origin = inputInt; 
      } 
      return c; 
     } else { 
      return 32-bitCount(-1*inputInt-1); 
     }   
    }  
} 

Eclipse, говорит, что «inputInt = >> 1» имеет «Ошибка синтаксиса на маркер„>>“, удалите этот маркер. », но я не вижу в этом ничего плохого. Я раньше не использовал побитовые операторы в Java, поэтому я мог бы забыть какую-то глупую ошибку. Спасибо за помощь.

+3

Try '>> ='. Также как '+ =', а не '= +'. – mtrw

+0

@mtrw yeah ... спасибо за быстрый ответ –

ответ

2

inputInt=>>1; должен быть inputInt >>= 1;

+0

кричит, это была глупая ошибка, как и ожидалось ... –