Форум программистов, компьютерный форум CyberForum.ru

xor, not - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.80
marik2012
0 / 0 / 0
Регистрация: 05.05.2012
Сообщений: 41
22.05.2012, 23:27     xor, not #1
кто может помочь с операциями ^(xor) и -(not). если можно навести примеры с реальными числами что они делают, например 2^3 или что-то вроде. Или киньте ссылку на ресурс где данное можно Доступно прочесть.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.05.2012, 23:27     xor, not
Посмотрите здесь:

C++ Шифрование Xor'ом
C++ оператор XOR
Оператор xor C++
Xor encrypt C++
C++ быстрый xor
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Toshkarik
 Аватар для Toshkarik
1139 / 856 / 50
Регистрация: 03.08.2011
Сообщений: 2,381
Завершенные тесты: 1
22.05.2012, 23:57     xor, not #2
Первая же ссылка по запросу xor в гугле...
alkagolik
 Аватар для alkagolik
1510 / 616 / 79
Регистрация: 15.07.2011
Сообщений: 3,552
23.05.2012, 01:23     xor, not #3
marik2012, это логические операции. В частности xor это бинарная операция - сложение по модулю 2 http://www.cyberforum.ru/cgi-bin/latex.cgi?x \oplus y
Результат является положительным если операнды различны и отрицательным если операнды эквивалентны. В случае с вычислительной техникой все несколько усложняется, т.к. в роли операнда выступают двоичные векторы. Возьмем тип char (просто потому что самый маленький). char равен одному байту, это 8 бит. В твоем примере 2^3 будет выглядеть так
00000010
xor
00000011
=
00000001
Операция инверсии "~" есть логическое отрицание. т.е. если x = 0, то НЕx = 1. По факту операция инверсии переводит число в обратный код, это делается для арифметики отрицательных чисел, за знак числа в типах отвечает старший бит и если x = 0, то НЕx = -1. Например при x = 7
not 00000111 =
11111000 = -8
И тут надо помнить что инвертированный двоичный код это обратный код и для полной инверсии его надо перевести в дополнительный. Еще надо осознать что в отличие от математики где ноль это пустота, ничего, в вычислительной технике ноль это физически существующая единица, т.е. для его хранения отводится значение из диапазона возможных. В общем тема интересная, я загуглил "машинная арифметика", результатов много.
marik2012
0 / 0 / 0
Регистрация: 05.05.2012
Сообщений: 41
24.05.2012, 16:42  [ТС]     xor, not #4
а еще ж есть операторы & и | можете про них что-сказать..например 2&5 ну и 2|5. Заранее спасибо.
alkagolik
 Аватар для alkagolik
1510 / 616 / 79
Регистрация: 15.07.2011
Сообщений: 3,552
24.05.2012, 16:51     xor, not #5
marik2012, "&" логическое И, конъюнкция. Равна 1 только в случае 1&1, в остальных случаях равна нулю
2 & 5 =
00000010
&
00000101
=
00000000 = 0
"|" лигическое ИЛИ, равно нулю только в случае 0 | 0, в остальных случаях равна 1
2 | 5 =
00000010
|
00000101
=
00000111 = 7
Подробно Булева алгебра, алгебра Жегалкина. В программировании их принято обзывать битовыми операциями, хотя в математике эти операции остаются такими же логическими, только в качестве операндов выступают веторы, а не единичные операнды (читай биты).
Yandex
Объявления
24.05.2012, 16:51     xor, not
Ответ Создать тему
Опции темы

Текущее время: 09:26. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru