Студопедия

КАТЕГОРИИ:


Архитектура-(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 Бит операнда 2 Бит выполнения операции &
     
     
     
     

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

Аналогичные действия выполняются и в случае применения оператора |, только результат вычисляется несколько иначе:

Бит операнда 1 Бит операнда 2 Бит выполнения операции ׀
     
     
     
     

В качестве примера рассмотрим операцию, выполняемую следующим кодом:

int result, op1, op2;

op1 = 4;

ор2 = 5;

result = op1 &. op2;

Здесь необходимо принять во внимание двоичное представление операндов op1 и ор2, соответственно 100 и 101. Результат этой операции получается путем сравнения двоичных битов, находящихся в одинаковых позициях в каждом из этих логических представлений:

• Первому слева биту результата присваивается значение 1, если оба крайних левых бита op1 и ор2 равны 1, и значение 0 в противном случае.

• Следующему биту результата присваивается значение 1, если оба следующих бита op1 и ор2 равны 1, и значение 0 в противном случае.

• Так продолжается для всех остальных битов.

То есть в рассмотренных выше примерах действия выглядят таким образом:

 

1 0 0 4 1 0 0 4

& 1 0 1 & 5 ׀ 1 0 1 ׀ 5

1 0 0 4 1 0 1 5

 

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

Бит операнда 1 Бит операнда 2 Бит выполнения операции^
     
     
     
     

В языке С# допускается использование унарного оператора работы с битами , воздействие которого на операнд состоит в инвертировании (изменении) всех его битов таким образом, что все биты, которые были равны 0, получают значение 1, и наоборот/

Бит операнда 1 Бит выполнения операции
   
   

Помимо описанных выше четырех операторов для работы с битами следует рассмотреть еще два оператора. А именно:

Оператор Тип Пример выражения Результат
>> Бинарный varl = var2 >> var3; Переменной varl присваивается значение, которое получается при сдвиге двоичного содержимого переменной var2 вправо на число битов, равное значению переменной var3
<< Бинарный varl = var2 << var3; Переменной varl присваивается значение, которое получается при сдвиге двоичного содержимого переменной var2 влево на число битов, равное значению переменной var3

Работу этих операторов, обычно называемых операторами побитового сдвига, лучше всего проиллюстрировать с помощью небольшого примера:

int var1, var2 = 10, var3 = 2;

var1= var2 << var3;

В этом примере переменной varl будет присвоено значение 40. Действительно, двоичное представление числа 10 — "1010"; после сдвига на две позиции влево оно превратится в "101000" — двоичное представление числа 40.




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


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


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



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




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