Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
GM - Делюсь опытом (Часть первая).docx
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
344.82 Кб
Скачать

Оператор побитового Или |

Приведу пример сравнения в таблице:

0 – 0 = 0: Если оба значения Отрицательны, то возвращается Ложь (false) 0.

0 – 1 = 1: Если одно из значений Положительное, то возвращается Правда (true) 1.

1 – 1 = 1: Если оба значения Положительные, то возвращается Правда (true) 1.

1 – 0 = 1: Если одно из значений Положительное, то возвращается Правда (true) 1.

Оператор побитового и &

И снова же таблица с примером:

0 – 1 = 0: Если одно значение Отрицательно, то возвращается Ложь (false) 0.

1 – 1 = 1: Если оба значения Положительны, то возвращается Правда (true) 1.

1 – 0 = 0: Если одно значение Отрицательно, то возвращается Ложь (false) 0.

0 – 0 = 0: Если оба значения Отрицательны, то возвращается Ложь (false) 0.

Оператор Побитовое исключающее ИЛИ ^ xor

Снова таблица:

1 – 1 = 0: Если оба значения Положительны, возвращается Ложь (false) 0.

0 – 1 = 1: Если одно значение Положительное, возвращается Правда (true) 1.

1 – 0 = 1: Если одно значение Положительное, возвращается Правда (true) 1.

0 – 0 = 0: Если оба значения Отрицательны, возвращается Ложь (false) 0.

Оператор Побитового сдвига влево <<

Это уже посложней, но не пугайтесь, это довольно легко понять.

Допустим, у нас есть переменная, которая хранит в себе цифру 1, назовем её result.

result = 1; // Где 1 в памяти значение выглядит так 0001 в двоичном коде.

Естественно, у типа double 64 бита разрядность, представьте себе сколько нужно прописать тут нулей, что бы продемонстрировать это по полной.

И так, у нас цифра 1 хранится в четырех битах 0001, если сделать битовый сдвиг влево на 1 шаг, то мы получим цифру 2, поскольку, бит сдвинется на 1 шаг влево. Что происходит с битами, когда мы их сдвигаем?

Если значение 0001 = 1, то значение 0010 = 2, затем, каждый сдвиг на ещё 1 шаг, будет умножать значение на 2.

Приведу коротенькую таблицу со сдвигом влево:

0001 = 1: Если сдвинуть на 1 бит (шаг) влево то

0010 = 2: Результатом будет 2, если сдвинуть ещё на 1 бит (шаг) то

0100 = 4: Результат будет 4

1000 = 8:

Всё что справа, заполняется нулями.

Материал с Википедии: Битовый сдвиг

«Схемотехническая реализация операций сдвига очень проста. Именно поэтому эти операции рекомендуют использовать для операций умножения и деления целых чисел на числа, равные степени 2 (2, 4, 8, 16, 32, 64 и т. д.) — если, конечно, такое округление отрицательных чисел не мешает».

Правда, я этим никогда не пользовался, просто не приходилось.

Оператор Побитового сдвига вправо >>

Тоже, самое, что и влево, только на оборот.

Оператор Сложения +

result = myage1 + myage2;

Результатом будет сложение двух Числовых операндов.

Например, можно записать так:

result = 10 + 10;

Оператор Вычитания -

result = myage1 - myage2;

Результатом будет вычитание значения с левого операнда значения правого.

Другими словами:

result = 20 - 10; // result будет равен 10

Оператор Умножения *

result = myage1 * myage2;

Или как уже принято =)

result = 5 * 5; // result будет равен 25

Оператор Деления /

result = myage1 / myage2;

Или:

result = 10 / 2; // result будет равен 5

Оператор div

Деление целого числа с откидыванием лишнего.

Например, 16 div 3 = 5;

Давайте как в детстве, есть 16 груш, и нас трое, каждый из нас взял себе по 5 груш честно, осталась одна, и мы её просто выкинули, дабы не побить друг друга из-а одной груши.

Поэтому результат деления будет 5.

Оператор mod Вычисление остатка от деления

16 / 3 = 1; // Та самая груша, что мы выкинули при делении оператором div

Унарный оператор Отрицания !

Преобразует Правду в Ложь и на оборот, для примера, пусть true у нас будет 0001, а false 0000, то мы можем преобразовать правду 0001 в ложь 0000 подставив перед значением знак отрицания !.

Пример:

open = true;

open = !true;

Таким образом, мы преобразовали true в fasle или 0 в 1, так же можно и наоборот.

Унарный оператор -

Делает следующее за ним значение отрицательным, например, есть у нас число 10 то оно положительное, а отрицательное будет -10.

myage = 18;

result = -myage;

То результат будет -18.

Оператор побитового отрицания ~

Приведу сразу пример поскольку, спать уже охота)

Пусть есть биты в памяти, 64 разряда,

0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0101

это число 5, то если применить к переменной битовый отрицатель, то биты в памяти просто будут инвертированы в отрицательное значение:

1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1011

И это значение будет -5.

Что бы инвертировать биты в отрицательное значение, можно сделать это так:

myAge = 5;

invert = ~myAge;

Тогда переменная invert будет равна -5.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]