Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Логические операторы




Операторы сдвига

Побитовые логические операторы

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

Оператор побитового отрицания НЕ (~) инвертирует значения всех битов числа, как показано ниже:

 

Значение бита операнда    
Значение бита результата    

 

Этот оператор часто применяется при инвертировании битовых карт.

 

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

 

Значение бита операнда 1        
Значение бита операнда 2        
Значение бита результата        

 

Этот оператор часто применяется для маскирования отдельных битов чисел.

 

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

 

Значение бита операнда 1        
Значение бита операнда 2        
Значение бита результата        

 

Этот оператор часто применяют для установки отдельных битов чисел.

 

Оператор побитового исключающего ИЛИ (^) сравнивает каждый бит первого операнда с соответствующими битами второго операнда. Если один из сравниваемых битов равен 0, а второй бит равен 1, то соответствующий бит результата устанавливается в 1; в противном случае, т.е. когда оба бита равны 1 или 0, бит результата устанавливается в 0:

 

 

Значение бита операнда 1        
Значение бита операнда 2        
Значение бита результата        

 

Этот оператор часто применяется при выводе изображений на экран, когда происходит наложение нескольких графических слоев.

Ниже приводятся примеры инструкций с побитовыми операторами:

short int i, j, r; i=0x45FF; // i = 0100 0101 1111 1111 j=0x00FF; // j = 0000 0000 1111 1111 // ----------------------------r = i ^ j; // r = 0100 0101 0000 0000 = 0x4500r = i | j; // r = 0100 0101 1111 1111 = 0x45FF r = i & j; // r = 0000 0000 1111 1111 = 0x00FFr = ~ j; // r = 1111 1111 0000 0000 = 0xFF00

Примеры:

 

short int i = 0x1234, j, k;k = i << 4; // k = 0x2340j = i << 8; // j = 0x3400 i = j >> 8; // i = 0x0034

Оператор логического отрицания НЕ (!) инвертирует значение своего операнда:

 

Значение операнда false true
Значение результата true false

 

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

 

Значение операнда 1 false false true true
Значение операнда 2 false true false true
Значение результата false false false true

 

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

 

Значение операнда 1 false false true true
Значение операнда 2 false true false true
Значение результата false true true true

 

Например:

bool sign1, sign2;

sign1 =!(salary < 20000.00) && (age <= 21);

sign2 = (cost > 50.00) || (stock_price >= 30.0)

 




Поделиться с друзьями:


Дата добавления: 2014-11-29; Просмотров: 365; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.008 сек.