У меня есть следующий код:
@Test
public void simpleTest() {
long x = 0;
x |= 3L;
System.out.println(showBits(x));
}
private String showBits(long x) {
StringBuilder builder = new StringBuilder();
for (int i = 0; i < 64; i++) {
builder.append((x & (1 << i)) > 0 ? "1" : "0");
}
return builder.reverse().toString();
}
В результате я ожидал увидеть такую последовательность: 00...011
, но на деле получилось:
0000000000000000000000000000001100000000000000000000000000000011
Я понимаю, что в int
32 бита, а в long
64. Мне непонятно, почему в long
типе обновляются оператором или каждые 32 бита, а не только первые.
Если вывести через System.out.println(x)
, то будет 3. А почему тогда дублируется тройка в битовом представлении?
Кажется, что ошибка где-то в цикле при выполннении операции И.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Задание, зашифровать строку через XOR и записать в фаил а потом прочитать, выполнить дешифровку и вывести в коснольМетод write реализовал а вот...
Есть таблица, где хранится дата в TimeShamp сохраняла так: В частности текущее значение TimeShamp для данной записи 1574610262000
Есть у меня ObservableList, который с файла сохраняет данные типов String, int, intВсе это добро у меня отображается в TableView