位运算符
Posted weixin_43063239
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了位运算符相关的知识,希望对你有一定的参考价值。
1,位运算是建立在二进制的基础上,当我们用十进制进行位运算时,要先转成二进制。
java工具
/**
* 十进制转二进制
* @return
*/
public static String get10change2(int ten)
String a = "";//用字符串拼接
while(ten!=0) //利用十进制转二进制除2法,直到除数为零 Integer.toBinaryString(int i)
a=ten%2+a;
ten=ten/2;
return a;
/**
* 二进制转十进制
* @param two
* @return
*/
public static String get2change10(String two)
return Integer.valueOf(two,2).toString();
2 , 与& 。或 ^ 。 异或 |。
& : 0&0 = 0,0&1 = 0,1&0 = 0, 1&1= 1; 同时1才取1
eg:7&8 = 0
10 进制 | 2二进制
7 0111
8 1000
result 0 0000
| : 0|0 = 0, 0|1 = 1, 1|0 = 1, 1|1 = 1; 有1取1 没1取0
eg : 7|8 = 15
10 进制 | 2二进制
7 0111
8 1000
result 15 1111
^ : 0^0 = 1, 1^0 = 0 , 0^1 = 0 , 1^1 = 1 相同取0,不同取1
eg: 7^8 = 15
10 进制 | 2二进制
7 0111
8 1000
result 15 1111
3,负数转二进制
-10 源码为 0110
过程:
10的源码 1010
补码 0101
result +1 0110
eg -7&8 = 8
-7 源码为 1001
过程:
7的源码 0111
补码 1000
result +1 1001
10 进制 | 2二进制
-7 1001
8 1000
result 8 1000
以上是关于位运算符的主要内容,如果未能解决你的问题,请参考以下文章