中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java中的位運算與移位運算有哪些

發布時間:2021-12-23 14:49:18 來源:億速云 閱讀:130 作者:iii 欄目:開發技術

本篇內容介紹了“Java中的位運算與移位運算有哪些”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

    位運算

    按位“與” &

    規則: 如果兩個相應的二進制形式的對應的位數都為 1,則結果為 1;否則為 0;

    4 & 5

    4

    0000 0100

    5

    0000 0101

    按位與運算

    &

    4 & 5 = 4

    0000 0100

    1 * 2^2 = 4

    -4 & 5

    -4

    1111 1100

    5

    0000 0101

    按位與運算

    &

    規則:運算結果符號位是1,為負數, 需要減 1,再取反(其他運算也要遵循)

    -4 & 5 = 4

    0000 0100

    1 * 2^2 = -4

    1.正數直接取二進制運算

    2.負數取反加一得補碼再運算,得到的結果符號位為 0,不需要做任何操作直接給出結果

    按位“或” |

    規則: 有 1 為 1;否則為 0;

    4 | 5

    4

    0000 0100

    5

    0000 0101

    按位或運算

    |

    4 | 5 = 5

    0000 0101

    1 * 2^0 + 1 * 2^2 = 5

    -4 | 5

    -4

    1111 1100

    5

    0000 0101

    按位或運算

    |

    規則:運算結果符號位是1,為負數, 需要減 1,再取反(其他運算也要遵循)

    -4 | 5 =

    1111 1101

    減1

    1111 1100

    取反

    -0000 0011

    -4 | 5 = -3

    1 * 2^0 + 1 * 2^1 = -3

    異或 ^

    規則: 相同為 0;不同為 1;

    4 ^ 5

    4

    0000 0100

    5

    0000 0101

    按位異或運算

    ^

    4 ^ 5 = 1

    0000 0001

    1 * 2^0 = 1

    -4 ^ 5

    -4

    1111 1100

    5

    0000 0101

    按位異或運算

    ^

    規則:運算結果符號位是1,為負數, 需要減 1,再取反(其他運算也要遵循)

    -4 ^ 5 =

    1111 1001

    減1

    1111 1000

    取反

    -0000 0111

    -4 ^ 5 = -7

    1 * 2^0 + 1 * 2^1 + 1 * 2^2 = -7

    移位運算

    左移 <<

    規則: 右邊空出的位用 0 填補高位,左移溢出則舍棄該高位。

    8 << 2

    8

    0000 1000

    << 2

    0010 0000

    左移運算符

    <<

    結果

    8 << 2 = 32

    1 * 2^5 = 32

    -8 << 2

    -8

    1111 1000

    << 2

    1110 0000

    左移運算

    <<

    規則:運算結果符號位是1,為負數, 需要減 1,再取反(其他運算也要遵循)

    減1

    1101 1111

    取反

    -0010 0000

    -8 << 2 = -32

    1 * 2^5 = -32

    右移 >>

    規則: 左邊空出的位正數用 0 負數 1 填補,右移溢出則舍棄該低位。

    8 >> 2

    8

    0000 1000

    >> 2

    0000 0010

    左移運算符

    >>

    結果

    8 >> 2 = 2

    1 * 2^1 = 2

    -8 >> 2

    -8

    1111 1000

    >> 2

    1111 1110

    左移運算

    >>

    規則:運算結果符號位是1,為負數, 需要減 1,再取反(其他運算也要遵循)

    減1

    1111 1101

    取反

    -0000 0010

    -8 >> 2 = -2

    1 * 2^1 = -2

    無符號右移 >>>

    規則: 正數與右移規則一樣;負數無符號右移,在高位補 0

    8 >>> 2

    8

    0000 1000

    >> 2

    0000 0010

    無符號右移運算符

    >>>

    結果

    8 >>> 2 = 2

    1 * 2^1 = 2

    -8 >>> 2

    -8

    1111 1111 1111 1111 1111 1111 1111 1000

    >>> 2

    0011 1111 1111 1111 1111 1111 1111 1110

    無符號右移運算符

    >>>

    規則:運算結果符號位是1,為負數, 需要減 1,再取反(其他運算也要遵循)

    減1

    -

    取反

    -

    -8 >>> 2 = 1073741822

    1073741822

    “Java中的位運算與移位運算有哪些”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

    向AI問一下細節

    免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

    AI

    深泽县| 禹州市| 晋州市| 石台县| 彝良县| 大荔县| 自贡市| 洛阳市| 铜山县| 手游| 东安县| 通化市| 余庆县| 上虞市| 沙湾县| 闸北区| 南溪县| 深水埗区| 翁源县| 万源市| 托里县| 财经| 乌拉特中旗| 宜宾县| 通山县| 龙山县| 米林县| 定结县| 勐海县| 镇平县| 吉安县| 定远县| 康保县| 永年县| 中西区| 遵义市| 东阿县| 平塘县| 成武县| 木兰县| 温州市|