黑马程序员技术交流社区

标题: 关于运算符的小结 [打印本页]

作者: 木木三    时间: 2015-9-16 21:12
标题: 关于运算符的小结
赋值运算,逻辑运算与位运算:
  1. class ReviewDemo{
  2.         public static void main(String[] args){
  3.                 int a=4,b,c;
  4.                 //赋值(=)运算
  5.                 b = a++; //先将a=4赋给b,a再++变为5,
  6.                 c = ++a; //a先++变为6,再将其值赋给c
  7.                 sop(a); //6
  8.                 sop(b); //4
  9.                 sop(c); //6
  10.                
  11.                 //异或(^)运算,以二进制数据作为运算基础
  12.                 sop(b<a ^ a==c); //true ^ true, false
  13.                 sop(b<a ^ a!=c); //true ^ false, true
  14.                 sop(b>a ^ a==c); //false ^ true, true
  15.                 sop(b>a ^ a!=c); //false ^ false, false
  16.                 sop(b^c); // b:0100,c:0110,2;
  17.                 //b^c,转成二进制后运算,即0100
  18.                 //^                0110
  19.                 //                0010,相同则为false,不同则为true。
  20.                
  21.                 //&&运算(AND短路)
  22.                 sop(b<a && a==c); //true && true, true
  23.                 sop(b<a && a!=c); //true && false, false
  24.                 sop(b>a && a==c); //false && true, false
  25.                 sop(b>a && a!=c); //false && false, false
  26.                 and(); //5
  27.                 and_2(); //4
  28.                
  29.                 //||运算(OR短路),有一个true则为true
  30.                 sop(b<a || a==c); //true || true, true
  31.                 sop(b<a || a!=c); //true || false, true
  32.                 sop(b>a || a==c); //false || true, true
  33.                 sop(b>a || a!=c); //false || false, false
  34.                
  35.                 //位运算符,即将参与运算的字符转换成二进制后按照逻辑运算符执行运算
  36.                 sop(6&3); //2, 与运算
  37.                 // 0110
  38.                 //&0010
  39.                 //=0010,即2.
  40.                
  41.                 sop(6|3); //7, 或运算
  42.                 // 0110
  43.                 //|0011
  44.                 //=0111,即7.
  45.                
  46.                 sop(6^3); //5, 异或运算
  47.                 // 0110
  48.                 //|0011
  49.                 //=0101,即5.
  50.                
  51.                 //一个数异或同一个数两次,结果还是那个数。(用于加密)
  52.                 //m = (n^m)^m;
  53.                 //n = n^(n^m);
  54.         }
  55.         public static void and(){
  56.                 int i = 3;
  57.                 if((i++>5)&(i++<9)){
  58.                         sop(i);
  59.                         sop("条件语句执行成功");
  60.                 }
  61.                 sop(i); //i执行了两次++,两边都要执行
  62.         }
  63.         public static void and_2(){
  64.                 int i = 3;
  65.                 if((i++>5)&&(i++<9)){
  66.                         sop(i);
  67.                         sop("条件语句执行成功");
  68.                 }
  69.                 sop(i); //i只执行了一次++,左为false直接短路
  70.         }
  71.        
  72.         public static void sop(Object obj){
  73.                 System.out.println(obj);
  74.         }
  75. }
复制代码





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2