Опыты ставились над переменной int number.
К двоичному виду приводил при помощи Integer.toBinaryString(number);
Пример #1: Операторы сдвига
Теория:
10001010 - значение
10001010>>1
11000101 - результат
Практика:
1111111111111111111111101111010 значение
1111111111111111111111101111010>>1
1111111111111111111111110111101 ожидание
111111111111111111111110111101 реальность
Пример #2: побитовое НЕ(NOT)
Теория:
~00001001 -выражение
00001001 -значение
11110110 -результат
Практика:
~1111111111111111111111111111111 выражение
1111111111111111111111111111111 значение
000000000000000000000000000 ожидание
1000000000000000000000000000 реальность
Что я делаю не так?
Практика:
1111111111111111111111101111010 значение
1111111111111111111111101111010>>1
1111111111111111111111110111101 ожидание
111111111111111111111110111101 реальность
откуда в вашем ожидании появилась новая единица слева?
При выполнении сдвига вправо старшие (расположенные в крайних левых позициях) биты, освобожденные в результате сдвига, заполняются предыдущим содержимым старшего бита.
источник
Поскольку у вас отображено 31 бит, значит 32 бит равен нулю, и при сдивге вправо именно он сдвигается и снова не отображается. А его место так же занимает ноль
Практика:
~1111111111111111111111111111111 выражение
1111111111111111111111111111111 значение
000000000000000000000000000 ожидание
1000000000000000000000000000 реальность
int содержит 4 байта по 8 бит = 32 бита.
В вашем случае "выражение" содержит 31 единицу, и 1 невидимый ноль в начале (java не выводит нули в начале).
Соответственно когда вы 31 единицу перевернули, так же перевернулся и первый бит, который в выражении равен нулю.
В итоговом выражении первый ноль стал единицей, а все единицы стали нулями.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Пример обновления в инстаграме
Пусть у меня есть массив testКак мне сделать так, чтобы он сохранялся в sharedPreferences при выходе из программы и загружался при входе?
Загружаю ключ из памяти телефона, декодирую из base64 в byte, получаю ключ и дальше уже работаю с нимНо при запуске программа выдает ошибку
Добрый день, уважаемые разработчикиСтолкнулся с задачей выбора способа реализации серверной части для android-приложения