java异或运算有啥用 java中异或是怎样算的?
java中异或是怎样算的?
异或运算(^)基于二进制数据。也就是说,当代码中使用异或运算时,这两个条件在运算前会被转换成二进制数据。如果外国同一个地方的值相同(均为0或均为1),则为0;如果值不同(一个为0,一个为1),则为1。例如,int a=4,int b=6,int c=a^b//c的值是a和b的异或。过程1和a的二进制值是0000 0100//,因为高位相同,所以低8位被删除。2经过异或运算后,B的二进制值为0000 0110 3,0000 0010//结果为2
逻辑代数有三个基本运算:and,or和not。实际的逻辑运算问题往往比and、or和not更复杂。但是,它们可以通过and、or和not的组合来实现。最常见的复合逻辑运算是and not、or not、and not、XOR或or。你问的问题(多项式运算和二进制异或会产生相同的结果),因为多项式可以用逻辑代数的基本定理来简化,最后的最小组合可能是异或!详见严实主编的《数字电子技术基础》。
为什么多项式运算和二进制异或会产生相同结果?
假设j=I,那么j>> I=0
j=I,j>> I=0
右移位数等于位数除以2,二进制是一组32:(此公式适用于正数的无符号右移,但不适用于负数)
j>> I=j>>> I=J/(int)(数学.pow(2,I%32))
向左移位的位数等于一个组中二进制32乘以2的位数:
J<< I=J*(int)(数学.pow(2,I%32))
异或运算,从二进制算法到十进制,公式:
^符号异或0^0=0,1^0=1,0^1=1,1^1=0
示例:
9 binary:1001
2 binary:0010
9^2 Result:1011
转换为decimal:821=11
规则:跳过0的数字,只关注每一位的1个十进制数=数学.pow(2,数字(从左到右)-1)
java异或运算有啥用 java异或运算符 或运算和异或运算
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。