「java中异或的表示」异或怎么理解java
本篇文章给大家谈谈java中异或的表示,以及异或怎么理解java对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
JAVA中按位异或是什么意思? 不太理解,请指教,谢谢!
异或运算没有听过,不过位与运算就有,它的原理是:先把十进制(或N进制)转换成二进制,再分别同位进行与运算,比如:
12&5(java中位与运算是用符号表示的)
即:12 = 11000
5 = 01001
--------------------
= 11001
位异或运算或许是把它们进行异或吧。
PS楼下不能这么说,有些算法还得用到这些位操作,用得妙的还真叫人拍案叫绝
java中的^表示啥
^是异或运算符(把数据转换成二进制,然后按位进行运算)。
运算规则:0^0 = 0, 1^0 = 1, 0^1 = 1, 1^1 = 0,运算对象相同为0,不同为1.
如:3^5 的运算过程为:
(1)先将3和5转换成二进制的11和101
(2)再按对应的位分别进行运算,11位数不足补零
011
^ 101
-----------
110
(3)运算结果转换成10进制:6
异或运算的三个个特点:
(1) 0^0=0, 0^1=1 0与任何数异或=任何数
(2) 1^0=1, 1^1=0 1与任何数异或 =任何数取反
(3) 任何数异或自己=把自己置0
异或运算的常见用途:
(1) 使某些特定的位翻转
例如对数10100001的第2位和第3位翻转,其他位不变,则可以将该数与00000110进行按位异或运算。
10100001^00000110 = 10100111
(2) 实现两个值的交换,而不必使用临时变量。
例如交换两个整数a=10100001,b=00000110的值,可通过下列语句实现:
a = a^b; //a=10100111
b = b^a; //b=10100001
a = a^b; //a=00000110
(3) 在汇编语言中经常用于将变量置零:
xor a,a
(4) 快速判断两个值是否相等
判断两个整数a,b是否相等,则可通过下列语句实现:
return ((a ^ b) == 0)
JAVA中的&&和^是什么?
JAVA中的是逻辑运算符,表示“逻辑与(and)”;
JAVA中的^是运算符中的一种,表示“异或(XOR)”,对两个整型操作数中对应位执行布尔代数,两个位相等0,不等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
关于java中异或的表示和异或怎么理解java的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。
发布于:2022-11-23,除非注明,否则均为
原创文章,转载请注明出处。