Бит – это наименьшая единица возможных вычислений для заданных данных. Обычно все данные, даже их формы в КБ, МБ и т. д., в основном состоят из битов, а затем биты в основном состоят из двоичных единиц и нулей.

Это все, что понимает компьютер, благодаря Джону фон Нейману, таким образом, в языке, известном как Си, и других языках становится возможной возможность ковыряться в этих 1 и 0, одним словом, где абстракция отброшена, и знание того, как преобразование из одной базы в другую становится решающим, где решение на бумаге становится гораздо более захватывающим, чем ожидание ответа компьютера, мир, в котором вы можете манипулировать 1 и 0, добро пожаловать в слово побитовой операции и нет вас ' не Нео.

Побитовая операция

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

Мотивация изучения побитовых операторов.

  • Они веселые и крутые.
  • мы можем быть Нео для разнообразия и манипулировать некоторыми двоичными числами
  • Проф так сказал
  • Битовые операторы используются для оптимизации встроенной системы
  • Эксклюзивный или оператор может использоваться для подтверждения целостности файла, если он был поврежден.
  • Побитовые операции используются при сжатии
  • e.t.c

Побитовые операторы

Существуют следующие операторы

  • &Побитовое И
  • | Побитовое ИЛИ
  • ^Побитовое исключающее ИЛИ
  • ~Побитовое НЕ (дополнение)
  • ‹‹ Сдвиг влево
  • ›› Сдвиг вправо

Они могут звучать очень похоже на логические операторы AND &&, OR || и т. д., но это не так, это намного круче, с побитовыми операторами мы можем микроскопировать один бит и сказать ему, что мы хотим от него, повлиять на него, мы становимся привратниками 1 и 0, не должны пройти, за исключением того, что мы манипулировали или пощадили. извини!

Побитовый оператор И (&)

Оператор И вернет ИСТИНА (1) тогда и только тогда, когда оба операнда ИСТИНА, иначе он вернет ЛОЖЬ (0).

#include <stdio.h>


int bitwise_and(unsigned int x, unsigned int y){
    if (x <= 0)
        printf("%s", "FALSE");
    
    return x & y;

}


int main (void) {
    unsigned int returned_and = bitwise_and(10, 12);
    printf("%d", returned_and);
    return (0);
}

более подробно, я бы порекомендовал освежить ваше преобразование десятичного числа в двоичное, поскольку аргументы 10 и 12 преобразуются в их двоичную форму, после чего применяется И. ИЗВИНИТЕ МОИ НАВЫКИ РИСОВАНИЯ.

10 == 1 0 1 0

12 = 1 1 0 0

Применение И к обоим операндам в их двоичной форме вывода равно 1 0 0 0 == 8 🤯🤯🤯🤯

ПРИМЕЧАНИЕ. С этого момента я буду использовать 1 == 1 0 1 0 и 12 == 1 1 0 0 для отображения выходных данных других операторов. Спасибо.

Побитовый оператор ИЛИ (|)

Побитовое ИЛИ вернет ИСТИНА (1), если существует хотя бы один операнд с 1, иначе вернет 0.

#include <stdio.h>

unsigned int bitwise_or(unsigned int x, unsigned int y)
{
    if (x <= 0)
        printf("%s", "FALSE");
    
    return (x | y);
}

int main (void) {
    printf("%d", bitwise_or(10, 12));
    return (0);
}

Побитовый оператор XOR (^)

Оператор XOR возвращает TRUE (1), если оба операнда различны, но если они одинаковы, он возвращает False (0).

#include <stdio.h>



unsigned int bitwise_xor(unsigned int x, unsigned int y)
{
    if (x <= 0)
        printf("%s", "FALSE");
    
    return (x ^ y);
}

int main (void) {
    printf("%d", bitwise_xor(10, 12));
    return (0);
}

Побитовое НЕ (~) оператор

Not является унарным оператором, то есть он работает с одним операндом ~ операндом. Передает один из самых крутых операторов, таких как шпатель Губки Боба, он переворачивает биты на противоположное значение, 1 становится 0, 0 становится 1, день становится ночью, ночь становится днем, миссис Пафф становится Трампом, Губка Боб становится Обамой. Хаос!