Рассмотрим следующий код (где byteIndex — это int):
int bitNumber = b-(8*byteIndex);
bitMask = 0x8>>(byte)bitNumber;
Это вызывает ошибку
error: possible loss of precision
при компиляции (требуемый байт, найдено целое число).
Код
int bitNumber = b-(8*byteIndex);
bitMask = 0x8>>2;
компилируется нормально.
В чем проблема и как исправить первый пример, чтобы разрешить сдвиг битов на значение int?
РЕДАКТИРОВАТЬ: после комментариев, вот более полный пример:
48) int byteIndex;
49) byte bitMask;
50) int bitNumber;
// assign value to byteIndex
67) bitNumber = b-(8*byteIndex);
68) bitMask = 0x8>>bitNumber;
и указана ошибка:
...MyClass.java:68: error: possible loss of precision
bitMask = 0x8>>bitNumber;
^
required: byte
found: int
1 error
bitMask
?? И типаb
тоже?? - person Rohit Jain   schedule 28.09.2012int
, то на моем компиляторе оба кода работают нормально.. - person Rohit Jain   schedule 28.09.2012