首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java和python ^运算符

Java和python ^运算符
EN

Stack Overflow用户
提问于 2012-10-26 01:25:13
回答 8查看 355关注 0票数 3

对于CompSci类,我们复习了Java Math类。作为一个愚蠢的程序员,我尝试使用^运算符而不是Math.pow函数。令人惊讶,令人惊讶的是,它没有起作用。但是,Java吐出了什么,这是我的问题。我正在试图弄清楚正在对这些数字进行的运算。你可以在下面看到我在说什么。

代码语言:javascript
复制
System.out.println(5^1);
System.out.println(5^2);
System.out.println(5^3);
System.out.println(5^4);
System.out.println(5^5);
System.out.println(5^6);
System.out.println(5^7);
System.out.println(5^8);
System.out.println(5^9);

运行上面的命令,我得到了以下结果:

代码语言:javascript
复制
4
7
6
1
0
3
2
13
12

当我在Python语言中做同样的事情(print 5^1,等等)时,同样的事情也会发生。Java API文档说^是“逐位异或”,但这仍然不能帮助have从5和3中得到6。有人能解释一下为什么会发生这种情况吗?

EN

回答 8

Stack Overflow用户

回答已采纳

发布于 2012-10-26 01:27:46

这是一个按位操作,因此它对数字的二进制位进行操作。6是二进制形式的110。5是二进制形式的101

代码语言:javascript
复制
110
101
=== (^ xor)
011

011在二进制中是3。

阅读https://en.wikipedia.org/wiki/Exclusive_or上的内容

票数 15
EN

Stack Overflow用户

发布于 2012-10-26 01:30:57

好的,让我们来看第一个例子。最简单的一个。以5^1为例。

5可以用101这样的二进制表示,而1可以用这样的001表示。

代码语言:javascript
复制
101    XOR
001
---
100 = 4 (in decimal)

因为1 XOR 1 = 00 XOR 0 = 01 XOR 0 = 1。只需去查看异或上的wiki页面。

票数 3
EN

Stack Overflow用户

发布于 2012-10-26 01:28:47

这是XOR operation

代码语言:javascript
复制
5 = 101 in binary
3 = 011 in binary

    101
XOR 011 
  = 110 = 6 in decimal
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13073957

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档