「java中异或的表示」异或怎么理解java

博主:adminadmin 2022-11-23 16:12:07 61

本篇文章给大家谈谈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的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

The End

发布于:2022-11-23,除非注明,否则均为首码项目网原创文章,转载请注明出处。