Java中的位运算符
1.^按位异或(XOR)
public static void main(String[] args) {
int result=5;
result=result^(result+2);
System.out.println(result);//2
}
^这个运算符大家在高中乃至大学数学学习中并不陌生,是与的意思
但是可能与我们想象的不同
首先5的二进制数 101
7的二进制数 111
结果 010----------------------转换成十进制数2
从结果我们可以看出是对应位数相同为0,不同位1
2.<<右移运算符
public static void main(String[] args) {
int result=5;
result=result<<3;
System.out.println(result);
}
首先5的二进制数 101 往右三位101000-----转换为十进制数40
例如:1>>2 就变成100及 1乘以2的平方
2>>2 及10>>2就成为1000及8 2乘以2的平方
那么2的三次方的运算?
int result=2<<2;
double result=Math.pow(2, 3);
大家知道Integer.MAX_VALUE 的值是2147483647
Integer.MIN_VALUE的值是-2147483648
那么int result=2<<30;
result的值又是多少呢?事实告诉我们是Integer. MIN_VALUE
result的值应该为我们期待中的正的2147483648
但是却超过了Integer.MAX_VALUE
上面的运算正如
if((Integer.MAX_VALUE+1)==Integer.MIN_VALUE){
System.out.println("Integer.MAX_VALUE+1)=Integer.MIN_VALUE");//被执行
}else{
System.out.println("Integer.MAX_VALUE+1)<>Integer.MIN_VALUEs");
}
那么int result=2<<31;又是多少呢?那么就是2的32此方
也就是2的31此方*2 ,及Integer. MIN_VALUE*2= Integer. MIN_VALUE+ Integer. MIN_VALUE
聪明的人可以把Integer. MIN_VALUE+ Integer. MIN_VALUE看成是
-8+(-8)=-8+(-1)+(-7)=7-7=0的,我得试试O(∩_∩)O哈哈~
其实并不是猜那么简单,每个人心中都会猜,那就是思想,挖掘自己的思想,不多解释。
if((Integer.MIN_VALUE+Integer.MIN_VALUE)==0){
System.out.println("you are clever(你很聪明)");
}else{
System.out.println(Integer.MIN_VALUE+Integer.MIN_VALUE);
System.out.println("you are not stupid(并不代表你笨)");
}
打印输出you are clever(你很聪明)
3. & 按位与(AND)
/**
* 5对应101
* 2对应010
* & 000
* 都相同的时候才为1
*大家可以与异或运算符^比较,^不同的时候才为1
*/
int a=5,b=2;
int result=a&b;
System.out.println(result);
4.~ 取反
int a=6;
int result=~a;
System.out.println(result);
Result的值就是a+1的相反数,原理不分析了,本人搞不了
6:及00000000000000000000000000000110
取反11111111111111111111111111111001这个数超过了long超过了int
那就是强转,不分析头大
5. | 按位或(OR) c = a | b
/**
* 5: 101
* 9:1001
*13:1101
*/
int reuslt=5|9;
System.out.println(reuslt);
6.还有>>、>>>左移运算符不多解释和右移相反
分享到:
相关推荐
13.java位运算符.zip13.java位运算符.zip13.java位运算符.zip13.java位运算符.zip13.java位运算符.zip13.java位运算符.zip13.java位运算符.zip13.java位运算符.zip13.java位运算符.zip13.java位运算符.zip13.java位...
Java语言中的位运算符是编程中的一个重要组成部分,尤其是在处理二进制数据或者进行高效计算时。在Java中,"&"符号被用作位AND运算符,它在二进制级别上进行操作,对两个操作数的每一位进行比较,并返回一个新值。这...
"Java位运算符详解" Java 位运算符是 Java 编程语言中的一种基本操作符,用于对二进制数进行操作。位运算符可以分为六种:按位与运算符 (&)、按位或运算符 (|)、异或运算符 (^)、取反运算符 (~)、左移运算符 () 和...
Java语言中的位运算符是编程中的一个重要组成部分,尤其是在处理底层数据和优化代码性能时。左移操作符()是位运算符之一,它在Java中有着特定的应用和理解。本篇文章将深入探讨Java中的左移操作符及其相关知识点。...
java位运算符代码实例
### Java位运算符详解 在Java编程语言中,位运算符是用于操作整数类型数据在二进制级别上的特定位的工具。这些运算符直接作用于整数类型的二进制表示,对于处理低级别的计算任务非常有用。下面将详细介绍Java中的四...
java位运算符之|(OR)操作视频!!!
Java中的位运算符是编程语言中一种强大的工具,它们直接操作整数类型的二进制位,包括`long`, `int`, `short`, `char`, 和 `byte`。这些运算符可以用于实现高效的位级操作,比如设置、清除、翻转和测试特定的位。 ...
Java中的位运算符是编程语言中用于操作整数在二进制表示下的基本逻辑运算,它们在处理二进制数据时特别有用。本文主要讲解了Java中的几种位运算符及其应用。 1. **按位与运算符(&)**: - 这个运算符对两个数的每...
Java中的位运算符是直接对整数类型的数据进行位级操作的运算符,这些整数类型包括long、int、short、char以及byte。位运算符包括按位非(NOT)、按位与(AND)、按位或(OR)、按位异或(XOR)、右移(Right Shift)...
9.java赋值运算符.zip9.java赋值运算符.zip9.java赋值运算符.zip9.java赋值运算符.zip9.java赋值运算符.zip9.java赋值运算符.zip9.java赋值运算符.zip9.java赋值运算符.zip9.java赋值运算符.zip9.java赋值运算符.zip...
35.java三元运算符.zip35.java三元运算符.zip35.java三元运算符.zip35.java三元运算符.zip35.java三元运算符.zip35.java三元运算符.zip35.java三元运算符.zip35.java三元运算符.zip35.java三元运算符.zip35.java三元...
32.java关系运算符.zip32.java关系运算符.zip32.java关系运算符.zip32.java关系运算符.zip32.java关系运算符.zip32.java关系运算符.zip32.java关系运算符.zip32.java关系运算符.zip32.java关系运算符.zip32.java关系...
30.java赋值运算符.zip30.java赋值运算符.zip30.java赋值运算符.zip30.java赋值运算符.zip30.java赋值运算符.zip30.java赋值运算符.zip30.java赋值运算符.zip30.java赋值运算符.zip30.java赋值运算符.zip30.java赋值...
10.java算术运算符.zip10.java算术运算符.zip10.java算术运算符.zip10.java算术运算符.zip10.java算术运算符.zip10.java算术运算符.zip10.java算术运算符.zip10.java算术运算符.zip10.java算术运算符.zip10.java算术...
33.java逻辑运算符1.zip33.java逻辑运算符1.zip33.java逻辑运算符1.zip33.java逻辑运算符1.zip33.java逻辑运算符1.zip33.java逻辑运算符1.zip33.java逻辑运算符1.zip33.java逻辑运算符1.zip33.java逻辑运算符1.zip33...
本资料包"java学习-java的运算符"是针对Java运算符的学习资源,旨在帮助你深入理解和熟练运用Java中的各种运算符。 1. **算术运算符**:Java中的算术运算符包括加法(+)、减法(-)、乘法(*)、除法(/)和取余...
这是java的条件运算符的基本例子,可参照代码来学习。