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

如题所述

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

public class Test {    public static void main(String[] args) {        
// 1、左移( << )        
// 0000 0000 0000 0000 0000 0000 0000 0101 ç„¶åŽå·¦ç§»2位后,低位补0:
//        // 0000 0000 0000 0000 0000 0000 0001 0100 æ¢ç®—成10进制为20        System.out.println(5 << 2);// è¿è¡Œç»“果是20         
// 2、右移( >> ) é«˜ä½è¡¥ç¬¦å·ä½        
// 0000 0000 0000 0000 0000 0000 0000 0101 ç„¶åŽå³ç§»2位,高位补0:       
 // 0000 0000 0000 0000 0000 0000 0000 0001       
  System.out.println(5 >> 2);// è¿è¡Œç»“果是1         
  // 3、无符号右移( >>> ) é«˜ä½è¡¥0        
  // ä¾‹å¦‚ -5换算成二进制后为:0101 å–反加1为1011       
   // 1111 1111 1111 1111 1111 1111 1111 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     } }
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-04-23
或:两个中只要有一个则为真
异或:两个中必须是一真一假才为真
与:两个都为真的时候才为真本回答被提问者采纳
第2个回答  2012-04-23
或 两个满足其中一个就返回true,如果前面的条件满足,则后面不会执行; 1==1 || null.equals("haha");虽然后面肯定空指针,但前面满足,后面不会执行,也不会运行时异常
异或 两个不同返回true,两个相同返回 false.....
与 两个必须同时满足则返回true,如果前面的条件不满足,后面也不会执行 1==2 && null.equals("haha");追问

System.out.println(1|3),System.out.println(1^|3),System.out.println(1&3)结果是:原因?

异或运算,求Java大神解释下题什么意思
这三句代码的意思是将a,b的值进行互换,与a=a+b;b=a-b;a=a-b;的效果是一样的,这样做的愿意是a^a=0,即同一个数出现偶数次,相当于出现0次。

JAVA中按位异或是什么意思? 不太理解,请指教,谢谢!
异或运算没有听过,不过位与运算就有,它的原理是:先把十进制(或N进制)转换成二进制,再分别同位进行与运算,比如:12&5(java中位与运算是用&符号表示的)即:12 = 11000 & 5 = 01001 --- = 11001 位异或运算或许是把它们进行异或吧。PS楼下不能这么说,有些算法还得用到这些位操...

求:JAVA中常用位运算符及其用法详解
即运算结果为z等于二进制数01000000。位或、位非、位异或的运算方法类同。(2)右移是将一个二进制数按指定移动的位数向右移位,移掉的被丢弃,左边移进的部分或者补0(当该数为正时),或者补1(当该数为负时)。这是因为整数在机器内部采用补码表示法,正数的符号位为0,负数的符号位为1。例如...

java中异或是怎样算的
解析异或是一种基于二进制的位运算,用符号XOR或者^表示,其运算法则是对运算符两侧数的每一个进制位同值则取0,异值则取1.简单理解就是不进位加法,如1+1=0,0+0=0,1+0=1.For example:3^5 = 6 转成二进制后就是 0011 ^ 0101 二号位和三号位都是异值取1 末尾两个1同值取零,所...

Java异或运算总结
异或运算是基于二进制的位运算,以符号XOR或^表示。其规则是:若二进制位相同,则结果为0;若二进制位不同,则结果为1。简单理解为不进位加法,例如1+1=0,0+0=0,1+0=0。异或运算具有交换律和结合律,且任何数与0进行异或运算结果不变。其用途广泛,如加密、数据校验、位操作等。例一:在不...

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

JAVA位运算符
异或运算符是用符号“^”表示的,其运算规律是:两个操作数的位中,相同则结果为0,不同则结果为1。下面看一个简单的例子。public class data16 { public static void main(String[] args){ int a=15;int b=2;System.out.println("a 与 b 异或的结果是:"+(a^b));} } 运行结果 a 与...

JAVA中四个二进制位从操作符即(&按位与、|按位货、^按位异或、~按位...
另,负数按补码形式参加按位或运算。“或运算”特殊作用:(1)常用来对一个数据的某些位置1。方法:找到一个数,对应X要置1的位,该数的对应位为1,其余位为零。此数与X相或可使X中的某些位置1。例:将X=10100000的低4位置1 ,用 X | 0000 1111 = 1010 1111即可得到。异或运算符(^)参...

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

java中的异或 与或的区别
true ^ false ^ false,结果也是true false || true || false 结果是true false ^ true ^ false 结果也是true false || false || true => true false ^ false ^ true => true 就是说三个条件只有一个为真的时候,他们运算结果是一样的。三个条件都是假的情况,运算结果都是false,也相同...

相似回答