Группа бинарных операций

Знак операции Операция
* Умножение
/ Деление
% Остаток от деления
+ Сложение
- Вычитание
<< Сдвиг влево
>> Сдвиг вправо
< Меньше
> Больше
<= Меньше или равно
>= Больше или равно
= = (=) Логическое равно
!= Не равно
& Поразрядное логическое И
| Поразрядное логическое ИЛИ
^ Поразрядное исключающее ИЛИ
&& Логическое И
|| Логическое ИЛИ
, Последовательное вычисление

Операция ”остаток от деления” (%) имеет результатом остаток от деления первого операнда на второй. Знак результата зависит от конкретной реализации. В Visual C++ знак результата совпадает со знаком первого операнда.

Пример:/* Остаток от деления */

int iVar1=49, iVar2=10,iVar3,iVar4,iVar5,iVar6;

iVar3=iVar1%iVar2;

iVar4=-iVar1%-iVar2;

iVar5=iVar1%-iVar2;

iVar6=-iVar1%iVar2;

printf("++=%d\t--=%d\t+-=%d\t-+=%d\n",iVar3,iVar4,iVar5,iVar6);

Операции сдвига сдвигают операнд влево (<<) или вправо (>>) на число битов, заданное вторым операндом. Оба операнда должны быть целыми величинами.

Замечание: В языке Си ”истина” считается любое число, не равное 0.

Пример:

bool bBool1,bBool2,bBool3,bBool4,bBool5;

bBool1=-31;

bBool2=0;

bBool3=!bBool1;

bBool4=true;

bBool5=false;

printf("bBool1=%d\tbBool2=%d\tbBool3=%d\n",bBool1,bBool2,bBool3);

printf("bBool4=%d\tbBool5=%d\n",bBool4,bBool5);

Операция поразрядного логического И (&) сравнивает каждый бит первого операнда с соответствующим битом второго операнда по правилу:

       
       
       

Операция поразрядного логического ИЛИ (|) сравнивает каждый бит первого операнда с соответствующим битом второго операнда по правилу:

       
       
       

Операция поразрядного исключающего ИЛИ (^)сравнивает каждый бит первого операнда с соответствующим битом второго операнда по правилу:

       
       
       

Логические операции:

Операция && (логическое И) (значение обоих операндов - истина):

       
       
       

Операция || (логическое ИЛИ)(значение хотя бы одного операнда -истина):

       
       
       

Операция! (НЕ) (истина, если была ложь и наоборот).

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

Пример:

for(i=0, j=10; i<MAX && 2*j<MAX; i++)

#include<stdio.h>

int main()

{

int iVar1=8, iVar2;

printf("Right %d\t%d\t%d\n",iVar1>>1,iVar1>>2,iVar1>>3); // сдвиг вправо

printf("Left %d\t%d\t%d\n",iVar1<<1,iVar1<<2,iVar1<<3);

// сдвиг влево

iVar1=-8;

printf("Right %d\t%d\t%d\n",iVar1>>1,iVar1>>2,iVar1>>3); // сдвиг вправо

printf("Left %d\t%d\t%d\n",iVar1<<1,iVar1<<2,iVar1<<3);

// сдвиг влево

printf("Input iVar1, iVar2\t");

scanf("%d%d",&iVar1,&iVar2);

printf("iVar1&&iVar2=%d\n",iVar1&&iVar2); // логическое И

printf("iVar1||iVar2=%d\n",iVar1||iVar2); // логическое ИЛИ

printf("!iVar1=%d\n",!iVar1); // отрицание НЕ

return 0;

}


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: