Java中'&'与、'|'或、'^'异或、'<<'左移位、'>>'右移位
2016-06-19 14:58
453 查看
public static void main(String[] args) { /* * &:与运算 * 全为1则为1,否则为0 */ System.out.print(1 & 0); System.out.print("--"); System.out.print(1 & 1); System.out.print("--"); System.out.println(0 & 0); // out:0--1--0 /* * |:或运算 * 全为0则为0,否则为1 */ System.out.print(1 | 0); System.out.print("--"); System.out.print(1 | 1); System.out.print("--"); System.out.println(0 | 0); // out:1--1--0 /* * ^:异或运算 * 相同为0,不同为1 */ System.out.print(1 ^ 0); System.out.print("--"); System.out.print(1 ^ 1); System.out.print("--"); System.out.println(0 ^ 0); // out:1--0--0 }
关于'<<'与'>>'操作:
m<<n,表示m二进制,右边尾部加0;m>>n,表示m二进制,右边尾部去掉1位;
m>>>n,表示m二进制,忽略其符号位,从左至右,去掉最后的n位;
不存在'<<<';
public static void main(String[] args) { int integer = 2; printBinary(integer); integer = 2 >> 1; printBinary(integer); integer = 2 >> 2; printBinary(integer); integer = 2 >> 3; printBinary(integer); System.out.println("===================="); integer = 2 << 1; printBinary(integer); integer = 2 << 2; printBinary(integer); integer = 2 << 3; printBinary(integer); System.out.println("===================="); integer = -2 << 1; printBinary(integer); System.out.println("===================="); integer = -2 >> 1; printBinary(integer); System.out.println("===================="); integer = 3 >> 1; printBinary(integer); System.out.println("===================="); integer = -2; printBinary(integer); printBinary(integer>>>1); printBinary(-integer); printBinary(-integer>>>1); } private static void printBinary(Integer integer) { System.out.println("Integer.toBinaryString()="+Integer.toBinaryString(integer)+", integer="+integer); } /** Integer.toBinaryString()=10, integer=2 Integer.toBinaryString()=1, integer=1 Integer.toBinaryString()=0, integer=0 Integer.toBinaryString()=0, integer=0 ==================== Integer.toBinaryString()=100, integer=4 Integer.toBinaryString()=1000, integer=8 Integer.toBinaryString()=10000, integer=16 ==================== Integer.toBinaryString()=11111111111111111111111111111100, integer=-4 ==================== Integer.toBinaryString()=11111111111111111111111111111111, integer=-1 ==================== Integer.toBinaryString()=1, integer=1 ==================== Integer.toBinaryString()=11111111111111111111111111111110, integer=-2 Integer.toBinaryString()=1111111111111111111111111111111, integer=2147483647 Integer.toBinaryString()=10, integer=2 Integer.toBinaryString()=1, integer=1 */
相关文章推荐
- JAVA中实现线程相互调用或回调
- Spring DI的配置使用
- Spring AOP切面实现:示例
- struts2自成定义校验器的使用
- MyEclipse添加Maven插件
- Jimoshi_用easyui做Struts2+Hibenate4学生实体类(Student)的增删改
- Spring缓存注解@Cache,@CachePut , @CacheEvict,@CacheConfig使用
- Error: Registry key 'Software\JavaSoft\Java Runtime Environment'\CurrentVersion'
- 动态代理
- 当复仇者联盟遇上Dagger2、RxJava和Retrofit的巧妙结合
- MyEclipse内存溢出问题解决方法
- 每日随手记
- Spring IOC的配置使用
- 深入浅出RxJava(基础篇)
- Spring IOC容器基本原理
- spring aop技术 学习总结
- 30分钟入门Java8之默认方法和静态接口方法
- Spring使用C3P0,从db.properties文件中读取信息,连接数据库
- Spring IOC基础
- java基础知识:栈内存和堆内存