КАТЕГОРИИ: Архитектура-(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) |
Побитовое исключающее сложение
Побитовое умножение Побитовый сдвиг вправо >> - при побитовом сдвиге вправо каждый бит числа сдвигается на заданное количество разрядов (N разрядов) вправо. При этом в результирующем числе N младших разрядов теряется, а в N старших разрядах появляются нули, если левый операнд содержит положительное значение, или в N старших разрядах появляются единицы (справедливо для Microsoft Visual C++, но не обязательно для других платформ), если левый операнд содержит отрицательное значение. Если правый операнд содержит отрицательное значение или его значение >= количеству бит в левом операнде, то результат операции не определен. Результат имеет тип левого операнда. Данная операция чаще всего применяется для помещения битов в заданную позицию. Примечание: Для побитового сдвига вправо a >> N = a / 2N, при N >= 0 (для N < 0 работает не всегда). Такой способ деления работает во много раз быстрее операции арифметического деления / (хотя в случае операции сдвига деление всегда целочисленное). Пример: 010111012 >> 3 = 000010112 100111012 >> 3 = 111100112 & - при побитовом умножении каждый бит одного числа умножается на соответствующий ему бит (находящийся в той же позиции) другого числа. При этом в результирующем числе соответствующий бит будет равен единице только в том случае если биты обоих чисел в этой позиции были равны единицам, в противном случае соответствующий бит результирующего числа будет равен нулю. Примечание: Для побитового умножения a & a = a Пример: Дано двоичное число 10011101, необходимо выделить его старшую часть. Для этого данное число необходимо побитово умножить на число, содержащее в старшей части единицы, а в младшей - нули (таким образом число 111100002 является маской). 100111012 & 111100002 = 100100002 ^ - при побитовом исключающем сложении (на жаргоне эта операция называется сложением по модулю или XOR) каждый бит одного числа складывается с соответствующим ему битом (находящимся в той же позиции) другого числа. При этом в результирующем числе соответствующий бит будет равен единице только в том случае если биты обоих чисел в этой позиции были различны (0 и 1 или 1 и 0), в противном случае (если биты имеют одинаковые значения: 0 и 0 или 1 и 1) соответствующий бит результирующего числа будет равен нулю. Примечание: Для сложения по модулю a ^ a = 0 Пример: Дано двоичное число 10000101, необходимо переключить его нечетные биты (1-й, 3-й, 5-й, 7-й). Для этого данное число необходимо сложить по модулю с числом, содержащим единицы в заданных разрядах. 100001012 ^ 101010102 = 001011112 Операция XOR также широко используется во многих алгоритмах шифрования информации, так как эта операция обладает свойством обратимости. Это означает, что если над результатом приведенного выше примера повторно провести ту же операцию, то результатом будет исходное число. 001011112 ^ 101010102 = 100001012 Число 101010102 в данном случае будет называться ключом шифрования.
Дата добавления: 2014-01-14; Просмотров: 535; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |