博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java位运算
阅读量:5314 次
发布时间:2019-06-14

本文共 1346 字,大约阅读时间需要 4 分钟。

/*    6的二进制:110    11的二进制:1011*///        与运算符: 相同位上都为1 则该位为1,否则0        System.out.println(6 & 11);//等价于 0110 & 1011 = 0010 ; 0010 转二进制等于2        //        或运算符: 相同位上有一个位1则该位为1,否则0        System.out.println(6 | 11);//等价于 0110 | 1011 = 1111 ; 1111 转二进制等于15        //        异或运算符:相同位上不同则该位为1, 否则0        System.out.println(6 ^ 11);//等价于 0110 | 1011 = 1101 ; 1111 转二进制等于13        //        取反运算符:    位上是0则取1,是1则取0(按位取反的快捷运算公式 -(x+1))        //6=00000000 00000000 00000000 00000110        //取反后为 11111111 11111111 11111111 11111001        //然后将二进制转为十进制数 -7        System.out.println(~6);        //        左移运算符:就是把当前这个数的二进制数向左移动多少位(补零)        //6=00000000 00000000 00000000 00000110=00000000 00000000 00000000 00110000        System.out.println(6 << 3);        //        算术右移运算符:就是把当前这个数的二进制数向右移动多少位(正数左边补0,负数左边补1)                //-11 转正数二进制 00000000 00000000 00000000 000001011        //取反 11111111 11111111 11111111 11110100  右移3位 11111111 11111111 11111111 11111110         // 然后负数二进制换算十进制        System.out.println(-11 >> 3);        //        逻辑右移运算符:就是把当前这个数的二进制数向右移动多少位(正数负数均左边补0),对于正数和算术右移没区别        //-11 转正数二进制 00000000 00000000 00000000 000001011        //取反 11111111 11111111 11111111 11110100  右移3位,在最高位补3个0 00011111 11111111 11111111 11111110        System.out.println(-11 >>> 3);

 

转载于:https://www.cnblogs.com/gavinYang/p/11196492.html

你可能感兴趣的文章
php oracle数据库NCOLB字段ORA-01704
查看>>
英语词汇—V01
查看>>
java关闭资源,自制关闭资源工具类
查看>>
计算机网络专题
查看>>
poj3641(学习了)
查看>>
java连接mysql底层封装
查看>>
jmeter添加自定义扩展函数之DoubleSum
查看>>
Session和Cookie详解(1)
查看>>
第八天
查看>>
JQuery基本知识、选择器、事件、DOM操作、动画
查看>>
C# ASP.NET MVC:使用Cookie记住账号密码
查看>>
Algebrizer
查看>>
【Java面试题】60 接口是否可继承接口? 抽象类是否可实现(implements)接口? 抽象类是否可继承具体类(concrete class)? 抽象类中是否可以有静态的main方法?...
查看>>
Kubernetes核心概念总结(摘选)
查看>>
ruby中输入命令行编译sass(ruby小白)
查看>>
js this指向理解
查看>>
ibatis分页查询(2)
查看>>
Tornado的autoreload
查看>>
Springmvc 重定向参数传递方式
查看>>
企业库5.0 | 关于创建企业库 Database 实例的两种方式
查看>>