程序给出的输出不同于我的预期

时间:2014-05-09 19:31:19

标签: operator-keyword xor

nt main()
{
    cout << ('a'^'b');
}

当我写这个简单的代码(在C ++中)程序给出&#34; 3&#34;输出。但它一定是&#34; 1&#34;。 你知道为什么吗? xor运算符有问题??

1 个答案:

答案 0 :(得分:0)

XOR没有问题,3的结果是正确的。

   'a' XOR 'b'
-> 0x61 XOR 0x62          (hex, per ASCII)
-> 01100001 XOR 01100010  (binary)
-> 00000011               (only these bits differ)
-> 3                      (decimal)

考虑以下内容,即1 - 为什么?

'`' ^ 'a'