C语言中 为什么 a^(b^a) = b
C语言中 为什么 a^(b^a) = b
a^(b^a) 展开是什么样子的
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
C语言中 为什么 a^(b^a) = b
a^(b^a) 展开是什么样子的
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(3)
不光 C,支持位运算的语言结果都会是这样(可能运算符不是这个,但结果相同)。
^
是 XOR(异或)运算符,就是二进制逐位比较,如果某位相同、则记为 0,反之不同则记为 1。举个简单的例子:
P.S. 其实就是翻转再翻转。
a异或b,所有不同的位都是1。而不同的位只能是0-1和1-0导致的,那么再去异或a,0的位置因为0^1翻转为0,1的位置1^1翻转成0,正好就是b了
异或操作符
a = 5 = 101b
b = 3 = 11b
b^a = 110b
110b^a = 101b = 5
公式是这样的,利用了位的特性