276
правок
Изменения
Новая страница: «'''ВНИМАНИЕ, СТАТЬЯ НАХОДИТСЯ В РАЗРАБОТКЕ''' '''Побитовые операции''' — операции, производ...»
'''ВНИМАНИЕ, СТАТЬЯ НАХОДИТСЯ В РАЗРАБОТКЕ'''
'''Побитовые операции''' — операции, производимые над цепочками битов. Выделяют два типа побитовых операций: логические операции и побитовые сдвиги.
==Принцип работы==
===Логические побитовые операции===
Битовые операторы И <tex>(AND, \&)</tex>, ИЛИ <tex>(OR, \mid)</tex>, НЕ <tex>(NOT, \sim)</tex> и исключающее ИЛИ <tex>(XOR,</tex> ^<tex>)</tex> используют те же таблицы истинности, что и их логические эквиваленты.
====Побитовое И====
Побитовое И используется для выключения битов. Любой бит, установленный в <tex>0</tex>, вызывает установку соответствующего бита результата также в <tex>0</tex>.
{|class="wikitable"
!rowspan=2|&
|-
|11001010 <br
/>11100010
|-
|||11000010
|}
====Побитовое ИЛИ====
Побитовое ИЛИ используется для включения битов. Любой бит, установленный в <tex>1</tex>, вызывает установку соответствующего бита результата также в <tex>1</tex>.
{|class="wikitable"
!rowspan=2| |
|-
|11001010 <br
/>11100010
|-
|||11101010
|}
====Побитовое НЕ====
Побитовое НЕ инвертирует состояние каждого бита исходной переменной.
{|class="wikitable"
!rowspan=2| ~
|-
|11001010
|-
|||00110101
|}
====Побитовое исключающее ИЛИ====
Исключающее ИЛИ устанавливает значение бита результата в <tex>1</tex>, если значения в соответствующих битах исходных переменных различны.
{|class="wikitable"
!rowspan=2| ^
|-
|11001010 <br
/>11100010
|-
|||00101000
|}
===Побитовые сдвиги===
Операторы сдвига <tex>\ll</tex> и <tex>\gg</tex> сдвигают биты в переменной влево или вправо на указанное число. На освободившиеся позиции помещаются нули, или, в случае сдвига вправо отрицательного числа, единицы (поддерживается знаковый бит). Сдвиг влево может применяться для умножения числа на два, сдвиг вправо — для деления.
<code>
x = 7; //00000111
x << 1; //00001110
x << 5; //11000000
x >> 2; //00110000
</code>
==Применение для решения задач==
==Источники информации==
[http://www.c-cpp.ru/books/bitovye-operatory| Онлайн справочник программиста на С и С++]
'''Побитовые операции''' — операции, производимые над цепочками битов. Выделяют два типа побитовых операций: логические операции и побитовые сдвиги.
==Принцип работы==
===Логические побитовые операции===
Битовые операторы И <tex>(AND, \&)</tex>, ИЛИ <tex>(OR, \mid)</tex>, НЕ <tex>(NOT, \sim)</tex> и исключающее ИЛИ <tex>(XOR,</tex> ^<tex>)</tex> используют те же таблицы истинности, что и их логические эквиваленты.
====Побитовое И====
Побитовое И используется для выключения битов. Любой бит, установленный в <tex>0</tex>, вызывает установку соответствующего бита результата также в <tex>0</tex>.
{|class="wikitable"
!rowspan=2|&
|-
|11001010 <br
/>11100010
|-
|||11000010
|}
====Побитовое ИЛИ====
Побитовое ИЛИ используется для включения битов. Любой бит, установленный в <tex>1</tex>, вызывает установку соответствующего бита результата также в <tex>1</tex>.
{|class="wikitable"
!rowspan=2| |
|-
|11001010 <br
/>11100010
|-
|||11101010
|}
====Побитовое НЕ====
Побитовое НЕ инвертирует состояние каждого бита исходной переменной.
{|class="wikitable"
!rowspan=2| ~
|-
|11001010
|-
|||00110101
|}
====Побитовое исключающее ИЛИ====
Исключающее ИЛИ устанавливает значение бита результата в <tex>1</tex>, если значения в соответствующих битах исходных переменных различны.
{|class="wikitable"
!rowspan=2| ^
|-
|11001010 <br
/>11100010
|-
|||00101000
|}
===Побитовые сдвиги===
Операторы сдвига <tex>\ll</tex> и <tex>\gg</tex> сдвигают биты в переменной влево или вправо на указанное число. На освободившиеся позиции помещаются нули, или, в случае сдвига вправо отрицательного числа, единицы (поддерживается знаковый бит). Сдвиг влево может применяться для умножения числа на два, сдвиг вправо — для деления.
<code>
x = 7; //00000111
x << 1; //00001110
x << 5; //11000000
x >> 2; //00110000
</code>
==Применение для решения задач==
==Источники информации==
[http://www.c-cpp.ru/books/bitovye-operatory| Онлайн справочник программиста на С и С++]