黑马程序员-位运算符

来源:互联网 发布:在淘宝卖保健品的要求 编辑:程序博客网 时间:2024/05/19 19:41

------- android培训java培训、期待与您交流! ----------



class Demo {public static void main(String[] args) {//1.<<(左移)//左移一位,右侧补0,原最左侧的值丢弃//每左移一位,相当于原数 * 2//实际移动的位数 = 要移动的位数 % 32int  num = 1;System.out.println(num << 31); //int的最小值 1000 0000 0000 0000 0000 0000 0000 0000System.out.println(num << 32); //1,32 % 32 = 0,相当于没动//2.>>(带符号右移)//右移一位,左侧补原符号位,右侧丢弃//每右移一位,相当于原数 / 2System.out.println(-1 >> 10); //-1System.out.println(1 >> 1); //0//3.>>>(无符号右移)System.out.println(-1 >>> 1); //移动以后就变成了正数//取反~System.out.println(~1);//-2System.out.println(~-1);//0//上述操作符都是生成新的计算结果,对原值没有更改}}

/*位运算符:1.&(按位与):对整数的二进制位进行操作:另外也可以对boolean进行操作:两位都为1,结果为1,其他结果为01 & 2 :true & true :true1.当操作数为boolean值时,结果跟&&是一样的2.逻辑与(&&)具有短路行为,而按位与(&)不具有短路行为。短路:当确定整个表达式的结果时,将不再继续执行后边的表达式2.|(按位或):对整数的二进制位进行操作:另外也可以对boolean进行操作:两位有一位为1,结果为1.其他都为01 | 2 : 0000 0001 | 0000 0010 : 0000 0011 -->33.^(按位异或):两位相同,结果为0;两位不同,结果为1;1 ^ 2 :0000 0001 ^ 0000 0010 : 0000 0011 --> 3*/class Demo {public static void main(String[] args) {System.out.println("1 & 2 = " + (1 & 2));System.out.println("1 & 3 = " + (1 & 3));System.out.println("true & true = " + (true & true));int age = 22;double height = 1.65;System.out.println(age >= 22 & height >= 1.60);System.out.println(true && false && ++age == 22);//短路行为System.out.println(age);//22System.out.println(true & false & ++age == 22);//短路行为System.out.println(age);//23int num1 = 10;int num2 = 20;//两个数异或其中一个数三次,对两个数进行换位num1 = num1 ^ num2;num2 = num1 ^ num2;num1 = num1 ^ num2;System.out.println(num1);System.out.println(num2);}}


0 0
原创粉丝点击