版权声明一:本文为博主原创文章,转载请附上原文出处连接和本声明。
版权声明二:本网站的全部做品会及时更新,欢迎你们阅读后发表评论,以利做品的完善。
版权声明三:对不遵照本声明或其余违法、恶意使用本网内容者,保留追究其法律责任的权利。
本文连接:https://juejin.im/editor/drafts/5dcd19b851882510c06fb20chtml
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
* */
}
复制代码
即:对一个二进制数按位取反,即将1变0,0变1。web
按位取反运算符“~”的原理:是将内存中的补码按位取反(包括符号位)。app
例如:正数网站
正数9(二进制为:1001)在内存中存储为01001,必须补上符号位(开头的数字0为符号位)。spa
转二进制:0 1001code
计算补码:0 1001orm
按位取反:1 0110 (变成补码,这明显变成了一个负数补码,由于符号位是1)cdn
补码减1:1 0101htm
在取反: 1 1010对象
符号位为1是负数,即-10
例如:负数
负数-1(二进制为:0001)在内存中存储为10001,必须补上符号位(开头的数字1为符号位)。
-1的反码为11110
-1的补码为11111 (也能够理解为:反码末位加上1就是补码)
~-1的取反 00000
~-1结果为:0
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软件工程师。
爱生活;爱健身;爱篮球,喜欢曼巴精神。
人生格言:「认真洗脸,多读书按时睡,少食多餐继续善良保持爱。」
下面是个人公众号二维码图片,欢迎关注。
更多请参考:
经常使用进制览表