предположит, я пишу некоторые очень простые тесты в андроид приложения, работающие на тренажере (зефир, OSX 64 бит) Whith выход LogCat:побитового оператора на андроид: почему большое число не равно
Log.i("test","long int = "+17301768L);
Log.i("test","long int = "+(1<<3 | 1<<8 | 1<<19 | 1<<24));
Log.i("test","long int = "+ 8607236360L);
Log.i("test","long int = "+(1<<3 | 1<<8 | 1<<19 | 1<<24 | 1<<33));
... LogCat печатает:
long int = 17301768
long int = 17301768
long int = 8607236360
long int = 17301770
Очевидно, что последняя строка неверна: она должна быть такой же, как в третьей строке.
Почему? И как я могу заставить его работать как ожидалось?
или просто '1L << 33' – TripeHound
Большое спасибо, Роберт. Теперь он работает так, как ожидалось! – Chrysotribax