版权声明一:本文为博主原创文章,转载请附上原文出处连接和本声明。
版权声明二:本网站的全部做品会及时更新,欢迎你们阅读后发表评论,以利做品的完善。
版权声明三:对不遵照本声明或其余违法、恶意使用本网内容者,保留追究其法律责任的权利。
本文连接:https://segmentfault.com/writ...html
public static void main(String args[]) { System.out.println( 7 & 9); /* * 7的二进制 * 7/2=3...1 * 3/2=1...1 * 1/2=0...1 * 直到商为0,将余数倒过来就是111 * 因而得数是111 */ /* * 9的二进制 * 9/2=4...1 * 4/2=2...0 * 2/2=1...0 * 1/2=0...1 * 因而得数是1001 */ /* * 7二进制 0111 * 9二进制 1001 * ------------ * 0001 ==1 */ }
public static void main(String args[]){ System.out.println(7 | 9); /* * 7二进制 0111 * 9二进制 1001 * ----------- * 1111 == 15 * */ }
public static void main(String args[]){ System.out.println( 7 ^ 9); /* * 7二进制 0111 * 9二进制 1001 * ------------ * 1110 == 14 * */ }
按位取反运算符“~”的原理:是将内存中的补码按位取反(包括符号位)。segmentfault
package test2; public class CeshiQuFan { public static void main(String args[]){ System.out.println(~7);//正数 /* * 7二进制 0000 0000 0000 0000 0000 0000 0000 0111 * 0000 0000 0000 0000 0000 0000 0000 0111 反码 * 0000 0000 0000 0000 0000 0000 0000 0111 补码 * 1000 0000 0000 0000 0000 0000 0000 1000 获得正数的补码以后进行取反 (这时获得的是负数)符号位为: 1 * 因此~7的值为:-8 */ } }
package test2; public class CeshiQuFan { public static void main(String args[]){ System.out.println(~-1);//负数 /* * -1二进制 1000 0000 0000 0000 0000 0000 0000 0001 * 1000 0000 0000 0000 0000 0000 0000 1110 反码(负数的反码是:符号位为1,其他各位求反,但末位不加1。) * 1000 0000 0000 0000 0000 0000 0000 1111 补码(负数的补码是:符号位不变,其他各位求反,末位加1 。) * 0000 0000 0000 0000 0000 0000 0000 0000 获得负数的补码以后进行取反 (这时获得的是正数) 符号位为: 0 * 因此~-1的值为:0 */ } }
我是阿康同窗,在北京奋斗的Java软件工程师。
爱生活;爱摄影;爱篮球,喜欢曼巴精神。
人生格言:「认真洗脸,多读书按时睡,少食多餐继续善良保持爱。」
下面的是个人公众号二维码图片,欢迎关注。网站
文章处1spa