Как появляются результаты побитового оператора?

Я очень удивлен, что не могу найти ответ на этот простой звучащий вопрос в Google. После проверки около десятка разных страниц я просто собираюсь спросить здесь ...

Согласно сэта страница, 3 и 5 результат в 1. Кроме того, 3 | 5 результат в 7. Единственный вопрос, который у меня есть, это просто:

Как мы получаем 1 за 3 и 5?Как получить 7 за 3 | 5?

Кроме того, как насчет отрицательных чисел?

Как 8 & -8 приводит к 8?

Конечно же, писать следующее в Java:

System.out.println(3&5);
System.out.println(3|5);
System.out.println(8&-8);

Производит этот вывод:

1
7
8

Но опять же, как эти результаты определяются / рассчитываются?

Ответы на вопрос(1)

Ваш ответ на вопрос