程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> Java中的位運算符、移位運算具體引見

Java中的位運算符、移位運算具體引見

編輯:關於JAVA

Java中的位運算符、移位運算具體引見。本站提示廣大學習愛好者:(Java中的位運算符、移位運算具體引見)文章只能為提供參考,不一定能成為您想要的結果。以下是Java中的位運算符、移位運算具體引見正文


一.位運算

Java中有4個位運算,它們的運算規矩以下:

(1)按位與 (&) :兩位全為1,成果為1,不然為0;

(2)按位或 (|) :兩位有一個為1,成果為1,不然為0;

(3)按位取反(~):0 變 1, 1變0;


(4)按位異或(^):兩位,假如雷同,成果為0;假如分歧,成果為1;

留意:

(1)位運算中的 符號位(最高位)也隨著變;

(2)位運算符與邏輯運算符(邏輯與&&、邏輯或||、邏輯非! )有點類似。然則,邏輯運算符只能操作boolean變量

(也就是閣下雙方的值都是boolean值);


二.位運算運用


(1) ~5 = ?

a) 5的補碼為:

00000000 00000000 00000000 00000101

b) 5的按位取反(~)為:

11111111 11111111 11111111 11111010


留意:由於高位數是1(正數),所以要將該補碼轉換為原碼;假如高位數是0(負數)的話, 就不消將補碼轉為原碼,由於負數的原碼、反碼、補碼都一樣。

c) 將該正數的補碼轉為反碼:

11111111 11111111 11111111 11111001


d) 將該正數的反碼轉為原碼:

10000000 00000000 00000000 00000110


e) 將二進制原碼 轉換為 十進制:


10000000 00000000 00000000 00000110 = 0 * 2^0 + 1 * 2^1 + 1 * 2^2 = 0+2+4 = -6 (最高位為1,所認為正數)


三. 移位運算:

Java中有3個移位運算符。


(1) 算術右移 (>>): 低位溢出,符號位不變,並用符號位補溢出的高位;

例如:a >> b :a是要挪動的數,b是要挪動的位數,上面同理;


(2) 算術左移(<< ): 符號位不變,低位補0;


(3) 邏輯右移(>>>): 低位溢出,高位補0;留意:邏輯右移(>>>)中的 符號位(最高位)也隨著變;

四. 留意點:

位運算與移位運算,都是應用的二進制的補碼,停止操作的,切忌!

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved