zoukankan      html  css  js  c++  java
  • 【java提高】(17)---Java 位运算符

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

    以前学过有关java的运算符,不过开发了这么久也很少用过这个。现在由于开发需要,所以现在再来回顾整理下有关java的运算符。

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

    一 与(&) 和 (|)

    1、&(按位与)

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

    举例

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

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

    2、|(按位或)

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

    举例

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

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


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

    1、异或(^)

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

    举例

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

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

    2、取反(~)

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

    举例

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

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

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

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


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

    1、左移运算(<<)

    规则 左移就是把所有位向左移动几位。

    举例

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

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

    公式 M << n 其实可以这么算 M << n = M * 2^n

    2、右移运算(>>)

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

    举例

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

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

    从这里就可以看出 正数右移补0,负数右移补1


    四、负数的进制表示

    我们来思考下

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

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

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

    举例

    -1 如何转换成二进制?

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

    2、负的二进制转十进制

    上面思路是负的十进制转二进制,那么同样负的二进制转10进制跟上面相反就可以了。

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

    举例

    1111 1101 如何转换成十进制?


    参考

    1、Java位运算符

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

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



     我相信,无论今后的道路多么坎坷,只要抓住今天,迟早会在奋斗中尝到人生的甘甜。抓住人生中的一分一秒,胜过虚度中的一月一年!(3)
    
  • 相关阅读:
    [LeetCode] 582. Kill Process
    [LeetCode] 686. Repeated String Match
    [LeetCode] 341. Flatten Nested List Iterator
    [LeetCode] 404. Sum of Left Leaves
    [LeetCode] 366. Find Leaves of Binary Tree
    [LeetCode] 1485. Clone Binary Tree With Random Pointer
    [LeetCode] 459. Repeated Substring Pattern
    [LeetCode] 565. Array Nesting
    [LeetCode] 679. 24 Game
    [LeetCode] 364. Nested List Weight Sum II
  • 原文地址:https://www.cnblogs.com/qdhxhz/p/11339011.html
Copyright © 2011-2022 走看看