多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
>[success] # 位运算符 * `&` 表示按位与运算符,按照二进制位进行与运算,同1为1,一0为0,两个二进制位数的位置如果都是1 即为1,一个为0即为0,和逻辑`&&` 一样的如果 `1&&1 结果1` 如果 `1&&0 0&&1 结果为 0` * `|` 表示按位或运算符,按照二进制位进行或运算,一1为1,同0为0,两个二进制位数的位置如果都是0 即为0,一个为1即为1,和逻辑`||` 一样的如果 `/ 1 || 1 ` `0 || 1` `1 || 0` 结果1` 如果 `0 || 0` 结果为 `0` * `~` 表示按位取反运算符,按照二进制位进行取反,1为0,0为1,即`1111 1101` 取反 `0000 0010` * `^` 表示按位异或运算符,按照二进制位进行异或运算,同为0,不同为1. >[danger] ##### 案例 ~~~ /* 编程实现位运算符的使用 */ public class BitTest { public static void main(String[] args) { // 1.声明两个byte类型的变量并初始化 byte b1 = 11; byte b2 = 13; // 2.打印变量的数值 System.out.println("b1 = " + b1); // b1 = 11 System.out.println("b2 = " + b2); // b2 = 13 System.out.println("---------------------------------------------------"); // 3.实现位运算符的使用 // b1的二进制为: 0000 1011 // b2的二进制为: 0000 1101 System.out.println( b1 & b2); // 按位与:同1为1,一0为0 按位与后的二进制为:0000 1001 => 转为十进制是:9 System.out.println( b1 | b2); // 按位或:一1为1,同0为0 按位或后的二进制为:0000 1111 => 转为十进制是:15 System.out.println( b1 ^ b2); // 按位异或:相同为0,不同为1 按位异或的二进制为:0000 0110 => 转为十进制是:6 System.out.println( ~ b1); // 按位取反:1为0,0为1 按位取反的二进制为:1111 0100 // 二进制1111 0100转为十进制 => 先减1: 1111 0011 => 按位取反:0000 1100 => 转为十进制:12 => 添加负号:-12 } } ~~~ * `&`逻辑与(而且)​ 两边都为真,结果才是真,只要有一个为假,那么结果就是假 * `|`逻辑或(或者) 两边都为假,结果才是假,只要有一个为真,那么结果就是真 * `^`(异或)如果两边相同,结果为false,如果两边不同,结果为true ~~~ // & //两边都是真,结果才是真。 System.out.println(true & true);//true System.out.println(false & false);//false System.out.println(true & false);//false System.out.println(false & true);//false System.out.println("==================================="); // | 或 //两边都是假,结果才是假,如果有一个为真,那么结果就是真。 System.out.println(true | true);//true System.out.println(false | false);//false System.out.println(true | false);//true System.out.println(false | true);//true ~~~