【java提升】(17)---Java 位运算符

Java 位运算符 &、|、^、~、<<、>>

之前学过有关java的运算符,不过开发了这么久也不多用过这个。如今因为开发须要,因此如今再来回顾整理下有关java的运算符。java

主要运算符有如下:与(&)或(|)异或(^)取反(~)左移(<<)右移(>>)3d

一 与(&) 和 (|)

一、&(按位与)

规则:将两边的数转换为二进制位,而后运算最终值。运算规则即(两个为真才为真)1&1=1 , 1&0=0 , 0&1=0 , 0&0=0。code

举例blog

4&7 这个运算的结果是多少?开发

3&5 这个运算的结果是多少?get

二、|(按位或)

规则 将两边的数转换为二进制位,而后运算最终值。不一样的是运算规则(一个为真即为真)1|0 = 1 , 1|1 = 1 , 0|0 = 0 , 0|1 = 1it

举例基础

3|6 这个运算的结果是多少?二进制

5|9 这个运算的结果是多少?im


2、异或(^) 和 取反(~)

一、异或(^)

规则 异就是不一样,其运算规则为1^0 = 1 , 1^1 = 0 , 0^1 = 1 , 0^0 = 0

举例

3^6 这个运算的结果是多少?

5^9 这个运算的结果是多少?

二、取反(~)

规则 取反就是1为0,0为1。

举例

~5 这个运算的结果是多少?

这个其实就是,就是把1变0,0变1。

注意:二进制中,最高位是符号位 1表示负数,0表示正数。

~15 这个运算的结果是多少?


3、左移运算(<<) 和 右移运算(>>)

一、左移运算(<<)

规则 左移就是把全部位向左移动几位。

举例

6 << 2 这个运算的结果是多少?

9 << 2 这个运算的结果是多少?

公式 M << n 其实能够这么算 M << n = M * 2^n

二、右移运算(>>)

规则 这个跟左移运算大致是同样的,可是仍是有点不一样的,不一样点在于对于正数和负数补位的时候补的不同,负数补1,正数补0

举例

12 >> 2 这个运算的结果是多少?

-9 >> 2 这个运算的结果是多少?

从这里就能够看出 正数右移补0,负数右移补1


4、负数的进制表示

咱们来思考下

一、负的十进制的转二进制

对于十机制的负数,如何用二进制来表示:

思路三步曲: 一、正数二进制 二、反码 三、反码+1

举例

-1 如何转换成二进制?

说明 -1在计算机里用二进制表达就是全1

二、负的二进制转十进制

上面思路是负的十进制转二进制,那么一样负的二进制转10进制跟上面相反就能够了。

思路三步曲 一、负数的二进制码 二、二进制码-1 三、取反

举例

1111 1101 如何转换成十进制?


参考

一、Java位运算符

二、Java中正负数二进制表示

三、Java基础——十进制负数转换为二进制、八进制、十六进制




我相信,不管从此的道路多么坎坷,只要抓住今天,早晚会在奋斗中尝到人生的甘甜。抓住人生中的一分一秒,赛过虚度中的一月一年!(3)
相关文章
相关标签/搜索