java中常见的运算总结
标签(空格分隔): 运算
最近看源码的时候总是遇到位运算,又有点忘记,现在就重现整理一下,常见运算,废话不多说,直接上代码,简洁明了。
public class Calculate {
public static void main(String[] args) {
//全部都是先转化为二进制,在运算
//1,&运算 两个操作数中位都为1,结果才为1,否则结果为0,
int a=129;
int b=128;
System.out.println("a&b:"+(a&b));
//2,|运算 两个位只要有一个为1,那么结果就是1,否则就为0,
System.out.println("a|b:"+(a|b));
//3,~运算 如果位为0,结果是1,如果位为1,结果是0,
System.out.println("~a:"+(~a));
//4,^运算 两个操作数的位中,相同则结果为0,不同则结果为1。
System.out.println("a^b:"+(a^b));
//5,<< 左移运算符,num << 1,相当于num乘以2,即左移n位,相当于乘以2的n次方
System.out.println("a<<1:"+(a<<1));
//6,>> 右移运算符,num >> 1,相当于num除以2,即右移n位,相当于除以2的n次方
System.out.println("b>>1:"+(b>>1));
//7,>>> 无符号右移,忽略符号位,空位都以0补齐
//忽略了符号位扩展,0补最高位 无符号右移运算符>>> 只是对32位和64位的值有意义
System.out.println("b>>>1:"+(b>>>1));
}
}
结果如下: