Как заработать деньги. Проект сам себе финансист.
март 2011
пн вт ср чт пт сб вс
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
Главная » » »

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

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

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

Мы в нашей жизни привыкли к десятичному представлению чисел: 56, 777, 10957 и т. д. Десятичное представление числа 10957 означает, что 10957 = 1*104 +0*103+9*102+5*101+7*100. Иными словами десятичное число - это a0*100+a1*101+a2*102+...+an*10n. Т. е. сумма произведений соответствующей цифры (ai) на соответствующую степень числа 10 (10i).

В компьютере внутренний формат представления чисел - двоичный. В двоичном формате все числа состоят из нулей и единиц, а в качестве множителя используется не число 10, возведенное в степень, а соответствующая степень числа 2. Например, двоичное число 10001101 равно десятичному (обычному) числу 1*27+0*26+0*25+0*24+1*23+1*22+0*21+1*20 = 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

В следующей статье будет рассказано о том, как можно объединить арифметическую или побитовую операцию с операцией присваивания.



Автор статьи: Андрей Ведихин

Хомячковый рай. Уйти и потеряться:

Комментарии к этой заметке больше не принимаются.




Есть что сказать? Не стесняйтесь!


Данную страницу никто не комментировал. Вы можете стать первым.

Ваше имя:
Ваша почта:

Комментарий:






Последние статьи:

Выгодные «исламские счета» для трейдеров Форекс Выгодные «исламские счета» для трейдеров Форекс Таким образом, вне зависимости от стиля работы стоит использовать «исламские счета» и сотрудничать с компаниями, которые не берут с трейдеров swap-комиссии. ..
2014-09-29
Стоит ли покупать чужие торговые сигналы и прогнозы? Стоит ли покупать чужие торговые сигналы и прогнозы? И все же основным нашим советом станет отказ от покупки торговых сигналов и прогнозов. Куда лучше научиться анализировать валютный рынок и думать всегда только своей головой. ..
2015-02-12

Видео по теме:




В мире больших денег

  • Самые богатые люди
    планеты. Ежегодные рейтинги FORBS. Истории успеха признаных финансовых гуру
  • Самые дорогие вещи:
    Часы, автомобили, ноутбуки стоимотью в десятки и сотни тысяч долларов. Рубрика "Чтоб я так жил"
  • Денежные прогнозы
    Что покупать и что продавать? Периодические прогнозы цен на иностранные валюты, акции крупнейших компаний и драгоценные металлы

ВКонтакте с деньгами

УГОЛОК АДМИНИСТРАТОРА