java的位运算符详解实例——&、^、|、~、<<、>>、>>>
来源:互联网 发布:冢原卜传 知乎 编辑:程序博客网 时间:2024/05/30 21:58
1、&(位运算符AND)
运算时会把十进制的数先转化为二进制的数,两个操作数中位都为1,结果才为1,否则结果为0,看一个简单的例子。
public class Testdata1 {
public static void main(String[] args) {
int k=12;
int j=123;
System.out.println(k&j);
}
}
运行结果为8;因为12的二进制数为1101,123的二进制数为1111011,根据与运算符的运算规律,只有两个位都是1,结果才是1,所以结果为8
2、^(异或运算符)
异或运算符是用符号“^”表示的,其运算规律是:
两个操作数的位中,相同则结果为0,不同则结果为1。看一个简单的例子。
public class Testdata2 {
public static void main(String[] args) {
int k=12;
int j=123;
System.out.println(k^j);
}
}
运行结果为119,因为12的二进制数为1101,123的二进制数为1111011,根据异或运算的规律,两个操作数的位中,相同则结果为0,不同则结果为1
可以得出其结果为1110111,转化为十进制就是119
3、|(或运算)
其运算规律如下:
两个位只要有一个为1,那么结果就是1,否则就为0,看一个简单的例子。
public class Testdata3{
public static void main(String[] args) {
int k=12;
int j=123;
System.out.println(k|j);
}
}
运行结果为127,因为12的二进制数为1101,123的二进制数为1111011,根据或运算的运算规律,两个位只要有一个为1,那么结果就是1,否则就为0,可以得出结果为1111111,转化为十进制数为127
4、~(非运算符)
其运算规律如下:
如果位为0,结果是1,如果位为1,结果是0,看一个简单例子。
public class Testdata4{public static void main(String[] args) {
int k=-12;
System.out.println(~k);
}
}
运行结果为11,因为-12的二进制数为11111111111111111111111111110100,根据非运算的运算规律如果位为0,结果是1,如果位为1,结果是0,可以得出结果为1011,转化为十进制为11
5、<<( 左移运算符)
其运算规律如下:
var<<n,相当于var乘以2的n次方,看一个简单的例子。
public class Testdata5 {
public static void main(String[] args) {
int k=2;
System.out.println(k<<5);
}
}
运行结果为32;
6、>>(右移运算符)
其运算规律如下:
var<<n,相当于var除以2的n次方,看一个简单的例子。
public class Testdata 6{public static void main(String[] args) {
int k=32;
System.out.println(k>>5);
}
}
运行结果为1;
7、>>>(无符号右移)
其运算规律如下:
忽略符号位,空位都以0补齐,看一个简单的例子。
public class Testdata7 {
public static void main(String[] args) {
int k=32;
System.out.println(k>>>2);
}
}
运行结果为8,因为32的二进制数为100000,右移两位就变为1000,转化为十进制数为8
- java的位运算符详解实例——&、^、|、~、<<、>>、>>>
- Java的位运算符详解实例
- java的位运算符详解实例
- Java的位运算符详解实例——与(&)、非(~)、或(|)、异或(^)
- Java的位运算符详解实例——与(&)、非(~)、或(|)、异或(^)
- Java的位运算符详解实例——与(&)、非(~)、或(|)、异或(^)
- Java的位运算符详解实例——与(&)、非(~)、或(|)、异或(^)
- Java的位运算符详解实例——与(&)、非(~)、或(|)、异或(^)
- Java的位运算符详解实例——与(&)、非(~)、或(|)、异或(^)
- Java的位运算符详解实例——与(&)、非(~)、或(|)、异或(^)
- Java的位运算符详解实例——与(&)、非(~)、或(|)、异或(^)
- Java的位运算符详解实例——与(&)、非(~)、或(|)、异或(^)
- Java的位运算符详解实例——与(&)、非(~)、或(|)、异或(^)
- Java的位运算符详解实例——与(&)、非(~)、或(|)、异或(^)
- Java的位运算符详解实例——与(&)、非(~)、或(|)、异或(^)
- Java的位运算符详解实例——与(&)、非(~)、或(|)、异或(^)
- Java的位运算符详解实例——与(&)、非(~)、或(|)、异或(^)
- Java的位运算符详解实例——与(&)、非(~)、或(|)、异或(^)
- 使pre的内容自动换行
- android开发关于"No resource found that matches the given name "的坑
- cmd查看被刷过的log
- 关于Viewpager中动态添加一个Fragment的做法
- 文件数据库
- java的位运算符详解实例——&、^、|、~、<<、>>、>>>
- android中的权重问题
- Python os.walk()
- C# 子窗体在父窗体中显示位置
- 33
- 02.加入GitHub
- 小博老师解析经典Java面试题-redirect和forward的区别
- Servlet 过滤器
- malloc 和 realloc 的使用。