导航:首页 > 编程语言 > java位异或

java位异或

发布时间:2023-01-30 21:57:01

java中异或是怎样算的

异或运算(^)都以二进制数据为基础进行的运算。也就是说当代码中使用到异或运算时,都会先将两个条件进行转换,转换成二进制数据后,再进行运算。异域中同位如果值相同(都是0或者都是1)则为0,不同(一个是0,一个是1)为1。
例如
int a=4;
int b=6;
int c = a^b;//c的值是a和b的异或。值为2.过程
1、a的值二进制是
0000 0100 //这里去低8位,因为高位都一致。 2、b的值二进制是
0000 0110 3、异或后
0000 0010 //结果是2

Ⅱ java中按位异或与逻辑异或的区别

逻辑没有异或运算。

位异或指:异或运算^,异或运算它都是以二进制数据为基础进行运算,1^1=00^0=11^0=10^1=1

Ⅲ java怎样用异或进行

异或运算(^)都以二进制数据为基础进行的运算。也就是说当代码中使用到异或运算时,都会先将两个条件进行转换,转换成二进制数据后,再进行运算。异域中同位如果值相同(都是0或者都是1)则为0,不同(一个是0,一个是1)为1。
例如
int a=4;
int b=6;
int c = a^b;//c的值是a和b的异或。值为2.

过程
1、a的值二进制是
0000 0100 //这里去低8位,因为高位都一致。

2、b的值二进制是
0000 0110

3、异或后
0000 0010 //结果是2

Ⅳ 在javaSE中位运算符^(按位异或)的特点是什么

按位异或概念不是JAVA的,而是计算机原理的,它最早是用于汇编,JAVA的^只是异或运算在JAVA的实现而已(C/C++也是用^表示按位异或的)
个人观点,按位异或运算的最大特点是可逆的,如
A=B^C,那么C==A^B,B==A^C
而其它按位的运算如 +-*/|&都是不可逆的

Ⅳ JAVA按位异或运算问题

首先取反运算符优先级高于异或运算符
其次int是32位
28=00011100(前面16位不写了)
8=00001000
-8=11111000
-28=11100100
所以a=28^-8=00011100^11111000=11100100=-28
a=-28^8=11100100^00001000=11101100=-20
是-20,不是20。楼主看清楚了。

Ⅵ java中异或是怎样算的

概述

i = 14,异或算法转换二进制,同则取0异则取1;

解析

异或是一种基于二进制的位运算,用符号XOR或者^表示,其运算法则是对运算符两侧数的每一个进制位同值则取0,异值则取1.

简单理解就是不进位加法,如1+1=0,0+0=0,1+0=1.

For example:

3^5 = 6

转成二进制后就是 0011 ^ 0101 二号位和三号位都是异值取1 末尾两个1同值取零,所以3^5 = 0110 = 6

而 i = 50 ,j = 60;

所以:

i 的二进制 = 00110010

j 的二进制 = 00111100

同位相同取0,不同取1所以得出来的值为00001110

i = i ^ j;所以i = 00001110 = 14


拓展内容

异或运算符

性质

1、交换律
2、结合律(即(a^b)^c == a^(b^c))
3、对于任何数x,都有x^x=0,x^0=x
4、自反性 A XOR B XOR B = A xor 0 = A

异或运算最常见于多项式除法,不过它最重要的性质还是自反性:A XOR B XOR B = A,即对给定的数A,用同样的运算因子(B)作两次异或运算后仍得到A本身。这是一个神奇的性质,利用这个性质,可以获得许多有趣的应用。 例如,所有的程序教科书都会向初学者指出,要交换两个变量的值,必须要引入一个中间变量。但如果使用异或,就可以节约一个变量的存储空间: 设有A,B两个变量,存储的值分别为a,b,则以下三行表达式将互换他们的值 表达式 (值) :
A=A XOR B (a XOR b)
B=B XOR A (b XOR a XOR b = a)
A=A XOR B (a XOR b XOR a = b)

#code:

Ⅶ java中字符串异或的原理

存在按位异或,就是根据数据在内存中的二进制数的存放形式进行异或操作,
但是不存在字符串的异或
如果在内存中的数据:01010101和10101010异或,结果就是11111111,然后再将
11111111转换成相应的数据输出结果
注意:Java中没有字符串的异或、与、或、非操作,不是C语言那样(除非是你自己定义异或操作)

Ⅷ java中的(或运算,异或运算,与运算)解释下

java中或运算、异或运算、与运算的使用实例和解释如下:

publicclassTest{publicstaticvoidmain(String[]args){
//1、左移(<<)
//然后左移2位后,低位补0:
////换算成10进制为20System.out.println(5<<2);//运行结果是20
//2、右移(>>)高位补符号位
//然后右移2位,高位补0:
//
System.out.println(5>>2);//运行结果是1
//3、无符号右移(>>>)高位补0
//例如-5换算成二进制后为:0101取反加1为1011
///
/我们分别对5进行右移3位、-5进行右移3位和无符号右移3位:
System.out.println(5>>3);//结果是0
System.out.println(-5>>3);//结果是-1
System.out.println(-5>>>3);//结果是536870911
//4、位与(&)
//位与:第一个操作数的的第n位于第二个操作数的第n位如果都是1,那么结果的第n为也为1,否则为0
System.out.println(5&3);//结果为1
System.out.println(4&1);//结果为0
//5、位或(|)
//第一个操作数的的第n位于第二个操作数的第n位只要有一个是1,那么结果的第n为也为1,否则为0
System.out.println(5|3);//结果为7
//6、位异或(^)
//第一个操作数的的第n位于第二个操作数的第n位相反,那么结果的第n为也为1,否则为0
System.out.println(5^3);//结果为6
//7、位非(~)//操作数的第n位为1,那么结果的第n位为0,反之。System.out.println(~5);//结果为-6}}

Ⅸ JAVA中按位异或是什么意思 不太理解,请指教,谢谢!

异或运算没有听过,不过位与运算就有,它的原理是:先把十进制(或N进制)转换成二进制,再分别同位进行与运算,比如:
12&5(java中位与运算是用&符号表示的)
即:12
=
11000
&
5
=
01001
--------------------
=
11001
位异或运算或许是把它们进行异或吧。
PS楼下不能这么说,有些算法还得用到这些位操作,用得妙的还真叫人拍案叫绝

阅读全文

与java位异或相关的资料

热点内容
苹果平板如何开启隐私单个app 浏览:704
空调压缩机一开就停止 浏览:528
如何下载虎牙app 浏览:847
日语年号的算法 浏览:955
dev里面的编译日志咋调出来 浏览:298
php函数引用返回 浏览:816
文件夹和文件夹的创建 浏览:259
香港加密货币牌照 浏览:838
程序员鼓励自己的代码 浏览:393
计算机网络原理pdf 浏览:752
吃鸡国际体验服为什么服务器繁忙 浏览:94
php中sleep 浏览:490
vr怎么看视频算法 浏览:86
手机app如何申报个人所得税零申报 浏览:694
如何截获手机app连接的ip 浏览:331
冰箱压缩机是否需要电容 浏览:346
python列表每一行数据求和 浏览:275
自己有一台服务器可以玩什么 浏览:657
社会学波普诺pdf 浏览:584
解压做食物的小视频 浏览:760