Есть ли способ реализовать побитовый XOR без использования ^
?Как реализовать XOR без использования ^?
1) с другими побитовыми операциями?
2) с арифметическими операциями?
Есть ли способ реализовать побитовый XOR без использования ^
?Как реализовать XOR без использования ^?
1) с другими побитовыми операциями?
2) с арифметическими операциями?
Я не знаю, почему вы хотите сделать это, но: (a|b)&~(a&b)
или (a&~b)|(b&~a)
арифметической версия кажется слишком сложной, чтобы попытаться без уважительной причины.
a xor b == (a and (not b)) or ((not a) and b)
Не хотите ли биттон и т. Д. Для побитовых версий? –
Я думал, что использование слов вместо символов сделает ответ более ясным; это бит-операции. –
Хорошо. Обратите внимание, что стандарт предоставляет слова с правильным значением: 'bitand' для' & ',' bitor' для '' 'и' compl' для '~', тогда как 'и',' или' и 'not' предназначены для логические операции ('&&', '||' и '!'), что делает ваш ответ несколько запутанным. –
Почему? (a | b) & ~ (a & b) –
Подумайте, что означает 'XOR' - должно быть очевидно, что комбинация операций OR, AND и NOT сделает трюк. –
Что не так с '^'? Есть оператор, который делает именно то, что вы хотите. Используй это! –