国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

Java中的位運算符、移位運算詳細介紹

2019-11-26 15:51:04
字體:
來源:轉載
供稿:網友

一.位運算

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;注意:邏輯右移(>>>)中的 符號位(最高位)也跟著變;

四. 注意點:

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 绥宁县| 肃北| 旬邑县| 鄢陵县| 芮城县| 鄄城县| 胶州市| 北宁市| 天祝| 英吉沙县| 枝江市| 容城县| 吕梁市| 沧源| 富川| 屯留县| 祁阳县| 香港| 赤水市| 杂多县| 小金县| 中牟县| 元江| 满洲里市| 乐陵市| 抚顺市| 友谊县| 玉林市| 阿拉尔市| 山丹县| 南木林县| 三河市| 上虞市| 濉溪县| 乌兰察布市| 陆丰市| 司法| 武山县| 阳朔县| 涿鹿县| 星子县|