按位操作符
Java中最不常用的按位操作符。按位操作符有:&(与)、 |(或)、 ^(异或)、 ~(取反)。
具体含义和用法,我们直接上代码。
用代码解释含义:
package com.cn.study;
//按位操作运算
public class BitOperationStudy {
/**
* & 按位与
* 如果两个整型数据a、b对应为都是1,则结果为才是1,否则为0
*/
public static void and(int a, int b) {
int c = a & b;//相同位的两个数字都为1,则为1;若有一个不为1,则为0。
System.out.println("a : " + a);
System.out.println("b : " + b);
System.out.println("c : " + c);//1
}
/**
* | 按位或
* 参与运算的两数各对应的二进位相或。只要对应的二个二进位有一个为1时,结果位就为1
*/
public static void or(int a, int b) {
int c = a | b;//相同位的两个数字若有一个为1,则为1,否则为0。
System.out.println("a : " + a);
System.out.println("b : " + b);
System.out.println("c : " + c);//1
}
/**
* ^ 按位异或
* 参与运算的两数各对应的二进位相异或,当两对应的二进位相异时,结果为1
* @param a
* @param b
*/
public static void xor(int a, int b) {
int c = a ^ b;//相同位的两个数字对应的二进位相异时,结果为1。
System.out.println("a : " + a);
System.out.println("b : " + b);
System.out.println("c : " + c);//1
}
/**
* ~取反
* 参与运算的两数如果位为0,结果是1,如果位为1,结果是0.
* @param a
*/
public static void negation(int a) {
int c = ~a;//如果位为0,结果是1,如果位为1,结果是0.
System.out.println("a : " + a);
System.out.println("c : " + c);//1
}
// <<左移 位移操作符,暂无示例
// >>右移 位移操作符,暂无示例
public static void main(String[] args) {
//与 &
and(9, 3);//9=1001 3=0011 &对应为:0001
and(8, 5);//8=1000 5=0101 &对应为:0000
//或 |
or(9, 3);//9=1001 3=0011 |对应为:1011=11
or(8, 5);//8=1000 5=0101 |对应为:1101=13
// ^ 按位异或
xor(9, 3);//9=1001 3=0011 ^对应为:1010=10
xor(8, 5);//8=1000 5=0101 ^对应为:1101=13
// ~ 按位取反
negation(9);//9=1001 ~对应为:0110=6
negation(5);//5=0101 ~对应为:1010=10
}
}
输出结果和运算解析
a : 9
b : 3
c : 1
a : 8
b : 5
c : 0
a : 9
b : 3
c : 11
a : 8
b : 5
c : 13
未完,有待补充。位移操作符