package com.bowen.dong; /** * https://blog.csdn.net/xiaopihaierletian/article/details/78162863 * 关于运算符,可以看一下上面博客 * @author bw * */ public class Test { public static void main(String[] args) { /* * 0100 * 0011 * 按位或运算符,只要有一个为1,就为1.都为0才为0 * 作用 常用来对一个数据的某些位置1 * 0111 所以输出结果是7 * * */ int n1 = 4|3; System.out.println(n1); /** * 异或运算: * 0100 * 0011 * 0111 * 结果还是7 只要参与运算的两个二进制不同,就为1,相就就为0 * */ int n2= 4^3; System.out.println(n2); /** * 0100 * 0011 * 0000 * 与运算:都为1才为1,所以打印为0 */ int n3=4&3; System.out.println(n3); /** * 0111 右移 00011 所以打印1 补零 * 0111 左右两位: 0001 1100 十进制 28 16+8+4 28 左移运算符有符号,正数补零,负数补1!!! */ System.out.println("7>>2(右移):"+(7>>2)); System.out.println("7<<2(左移):"+(7<<2)); } }
不要把按位或与异或运算符搞混了!!!