Каков результат этой побитовой операции? и как?

int main()
{
   int a = '-' ^ '+';
   cout << a;
   return 0;
}

Что выводит этот код? пожалуйста, объясните, я знаю, как xor работает с числами, но использую это как это. Каков результат этого кода и объясните, как?

Пожалуйста, прочтите здесь в следующий раз.

Kerberos 10.08.2018 15:25

Вы можете запустить его, чтобы узнать результат.

d219 10.08.2018 15:29
5
2
20
1

Ответы 1

Знаки «-» и «+» - это символы (обозначены одинарными кавычками).

Символы - это унаследованные целые числа, представляющие место символов в ASCII.

'-' = 45, '+' = 43.

Итак, ваш код такой же, как 45 ^ 43.

Внутренне они преобразуются в двоичные:

45 = 00101101, 43 = 00101011

а затем над ними выполняется операция xor, в результате чего

000110

и затем возвращается к int (110 двоичных = 6 в десятичных) и присваивается целому числу a.

Тестирование в c:

 int a = '-' ^ '+';
 printf("%d", a); //%d is to print it as a number

Дали результат 6, как и мое объяснение.

Другие вопросы по теме