我目前正在学习C++.我试图使用表达式计算整数的幂:
val=10^1;
Run Code Online (Sandbox Code Playgroud)
而不是预期的答案10,结果是11.我已经通过使用powmath.h库的函数解决了这个问题,但我想知道为什么这个语句给了我错误的结果.
Ami*_*jad 11
没有!你认为那是力量吗?别忘了这个(用C++和一些编程语言):

一定要读这个:
按位XOR采用相等长度的两个位模式,并对每对相应位执行逻辑异或运算.如果只有第一位为1或者只有第二位为1,则每个位置的结果为1,但如果两者都为0或两者都为1则为0.在此我们执行两位的比较,如果两位则为1位是不同的,如果它们是相同的则为0.例如:
0101 (decimal 5)
XOR 0011 (decimal 3)
= 0110 (decimal 6)
Run Code Online (Sandbox Code Playgroud)
按位XOR可用于反转寄存器中的所选位(也称为切换或翻转).可以通过将其与1进行异或来切换任何位.例如,给定位模式0010(十进制2),第二和第四位可以通过按位XOR切换,其中位模式在第二和第四位置包含1:
0010 (decimal 2)
XOR 1010 (decimal 10)
= 1000 (decimal 8)
Run Code Online (Sandbox Code Playgroud)
该技术可用于操纵表示多组布尔状态的位模式.
资料来源:维基百科
这是按位的独占或运营商,而不是权力.二进制:
10 = 1010
1 = 0001
val= 1011 = 11 in decimal
Run Code Online (Sandbox Code Playgroud)