java二进制运算符
程序员文章站
2022-05-09 08:15:39
...
直接上代码 复制到ide里面可以运算查看结果
package com.bulingfeng.sourceCode;
public class Test {
public static void main(String[] args) {
//以下的符号都是针对2进制来的
/**
* & 与运算符号 只有两个位上面的值都为1才是1 其他都是0
*/
int m1=5;//0101
int m2=12;//1100
System.out.println(m1&m2);//0100 值为4
/**
* | 或运算符 只有位上有一个为1 则该位为1
*/
System.out.println(m1|m2); //1101 值为13
/**
* ^ 异或 只有当两个位不同时候才会是1
*/
System.out.println(m1^m2);//1001 值为9
/**
* int 为4个字节 每个字节为8bit 所以 12的二进制为 10000000 00000000 00000000 001100
*
* ~ 取反 全部的1变为0 全部的0变为1
*/
System.out.println(~12);//
String binaryStr = java.lang.Integer.toBinaryString(~12);
System.out.println("取反后的二进制为:"+binaryStr);//11111111111111111111111111110011
/**
* << 整齐向左移位
*/
System.out.println(m1<<1);//1010 值为10
/**
* >>整齐向右移位
*/
System.out.println(m2>>1);//0110 值为6
System.out.println(m1>>1);//0010 值为2
}
}