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


например, forex

Для начала необходимо рассказать оформате представления чисел вкомпьютере.

Мы внашей жизни привыкли кдесятичному представлению чисел: 56,777, 10957 ит.д. Десятичное представление числа 10957означает, что 10957= 1104+0103+9102+5101+7100. Иными словами десятичное число— это a0*100+a1*101+a2*102+…+an*10n. Т.е. сумма произведений соответствующей цифры (ai) насоответствующую степень числа 10(10i).

В компьютере внутренний формат представления чисел— двоичный. Вдвоичном формате все числа состоят изнулей иединиц, авкачестве множителя используется нечисло 10,возведенное встепень, асоответствующая степень числа 2.Например, двоичное число 10001101равно десятичному (обычному) числу 127+026+025+024+123+122+021+120= 128+0+0+0+8+4+0+1= 141.

Каждая такая двоичная цифра (1или 0)называется битом.

Теперь мызнаем достаточно, чтобы рассмотрить побитовые операции.

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

Дополнение доединицы. Вкаждом разряде единица заменяется нулем, ануль— единицей. Пример:

   int b = 141; // начальное значение переменной b равно 141,
// что в двоичном представлении равно 10001101
b = ~b; // переменная b стала равна 01110010, т.е. 114

Сдвиг вправо. Двоичное представление первого операнда сдвигается вправо наколичество разрядов, равное значению второго операнда. Освобождающиеся левые разряды будут заполняться нулями. Пример:

   int b = 141; // начальное значение переменной b равно 141,
// что в двоичном представлении равно 10001101
b = b >> 2; // переменная b стала равна 00100011, т.е. 67

Сдвиг влево. Двоичное представление первого операнда сдвигается влево наколичество разрядов, равное значению второго операнда. Появившиеся правые разряды будут заполняться нулями. Пример:

   int b = 141; // начальное значение переменной b равно 141,
// что в двоичном представлении равно 10001101
b = b << 2; // переменная b стала равна 1000110100, т.е. 564

Побитовая операция И. Результат будет содержать единицу втех разрядах, где соответствующие разряды первого ивторого операнда содержат единицу. Вдругих случаях соответствующий бит результата будет равен 0.Пример:

   int a = 25;  // начальное значение переменной a равно 25,
// что в двоичном представлении равно 00011001
int b = 141; // начальное значение переменной b равно 141,
// что в двоичном представлении равно 10001101
a = a & b; // переменная a стала равна 00001001, т.е. 9

Побитовая операция ИЛИ. Результат будет содержать ноль втех разрядах, где соответствующие разряды первого ивторого операнда содержат ноль. Вдругих случаях соответствующий бит результата будет равен 1.Пример:

   int a = 25;  // начальное значение переменной a равно 25,
// что в двоичном представлении равно 00011001
int b = 141; // начальное значение переменной b равно 141,
// что в двоичном представлении равно 10001101
a = a | b; // переменная a стала равна 10011101, т.е. 157

Побитовая операция исключающее ИЛИ. Значение результирующего выражения будет содержать 1втех разрядах, вкоторых xиyимеют разные двоичные значения, и0— вовсех остальных разрядах. Пример:

   int a = 25;  // начальное значение переменной a равно 25,
// что в двоичном представлении равно 00011001
int b = 141; // начальное значение переменной b равно 141,
// что в двоичном представлении равно 10001101
a = a ^ b; // переменная a стала равна 10010100, т.е. 148


Перейти к главе «Условный оператор».
 
+7 (495) 710-76-76
8 (800) 200-01-31
по России бесплатно

закрыть

Вход в личный кабинет

Для счета alpari.classic введите номер счета (буква и 4 цифры) и пароль в ЛК.

Для счетов alpari.micro и alpari.partner введите логин и пароль в МТ.

Зарегистрироваться!Забыли пароль?

 
Rambler's Top100