Чем отличается & от | в побитовых операциях? Пожалуйста,подробный ответ
Ответы
1) Логическое И (&) даёт на выходе единицу только если все входные биты равны единице (и первый, и второй)
Для двух входных битов:
1 & 1 = 1
1 & 0 = 0
0 & 1 = 0
0 & 0 = 0
Для трёх входных битов то же самое (полностью не пишу):
1 & 1 & 1 = 1
1 & 1 & 0 = 0
1 & 0 & 1 = 0
0 & 1 & 1 = 0
2) Логическое ИЛИ (|) даёт на выходе единицу когда любой из входных битов равен единице (или первый, или второй, или оба)
Для двух входных битов:
1 | 1 = 1
1 | 0 = 1
0 | 1 = 1
0 | 0 = 0
Для трёх входных битов то же самое (полностью не пишу):
0 | 0 | 1 = 1
0 | 1 | 0 = 1
1 | 0 | 0 = 1
0 | 0 | 0 = 0
Побитовые операции: если на входе не отдельные биты, а числа - то эти логические операции проводятся с соответствующими парами битов в числах (сами числа предварительно переведите в двоичную систему счисления, чтобы видеть эти отдельные биты):
3₁₀ & 5₁₀ = 011₂ & 101₂ = 001₂ = 1₁₀
здесь были операции с парами битов:
0 & 1 = 0
1 & 0 = 0
1 & 1 = 1
3₁₀ | 5₁₀ = 011₂ | 101₂ = 111₂ = 7₁₀
здесь были операции с парами битов:
0 | 1 = 1
1 | 0 = 1
1 | 1 = 1
В логических операциях и их результатах единица / ноль также могут называться как:
- Логическая единица / Логический ноль
- Истина / Ложь
- True / False
- Да / Нет