java中与运算,或运算,异或运算,取反运算
Posted JACK-SEN
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java中与运算,或运算,异或运算,取反运算相关的知识,希望对你有一定的参考价值。
//与运算 & 规则 :都为1时才为1
System.out.println( 7 & 9);
/*
* 7二进制 0111
* 9二进制 1001
* -----------
* 0001 ==1
* */
//或运算 | 规则:有一个为1,则为1
System.out.println(7 | 9);
/*
* 7二进制 0111
* 9二进制 1001
* ----------
* 1111 == 15
* */
//异或运算 ^ 规则:不同为1
System.out.println( 7 ^ 9);
/*
* 7二进制 0111
* 9二进制 1001
* ----------
* 1110 == 14
*
* */
//取反运算 ~ 规则:按位取反
System.out.println( ~7);//正数
/*
* 7二进制 0000 0000 0000 0000 0000 0000 0000 0111
* 1111 1111 1111 1111 1111 1111 1111 1000 取反之后变成负数了
* 1000 0000 0000 0000 0000 0000 0000 0111 补码
* 1000 0000 0000 0000 0000 0000 0000 1000 原码 == -8
*
* */
System.out.println(~-7);
/*
* 7二进制 1000 0000 0000 0000 0000 0000 0000 0111
* 1111 1111 1111 1111 1111 1111 1111 1000 负数先转成补码
* 1111 1111 1111 1111 1111 1111 1111 1001 补码
* 0000 0000 0000 0000 0000 0000 0000 0110 得到负数的补码之后进行取反 (这时得到的是正数) 6
* */
以上是关于java中与运算,或运算,异或运算,取反运算的主要内容,如果未能解决你的问题,请参考以下文章
Java位运算:位异或运算位与运算位或运算位取反运算左位移运算右位移运算无符号右移运算不用额外变量交换两个整数的值(使用位异或运算)只出现一次的数字
Java位运算:位异或运算位与运算位或运算位取反运算左位移运算右位移运算无符号右移运算不用额外变量交换两个整数的值(使用位异或运算)只出现一次的数字