官术网_书友最值得收藏!

3.3.1 位邏輯運算

位邏輯運算是對每個二進制上的數值進行判斷。Java語言提供了4個進行位邏輯運算的運算符,即位邏輯運算符,如表3.8所示。

表3.8 位邏輯運算符

1.取反運算

取反運算使用取反運算符(~)對二進制位值進行取相反值操作。用取反運算符構建的表達式被稱為取反運算表達式。其語法形式如下:

取反運算表達式需要一個操作數,因此取反運算符是一元運算符(單目運算符)。取反運算就是將二進制數按位取反,即0變1,1變0,如圖3.13所示。

圖3.13 取反運算

示例3-21】下面將實現對二進制數00111100的取反運算。代碼如下:

運行結果如下:

2.位與運算

位與運算使用位與運算符(&)判斷兩個二進制數的位上的值是否都為1。用位與運算符構建的表達式被稱為位與運算表達式。其語法形式如下:

位與運算表達式需要兩個操作數,因此位與運算符是二元運算符(雙目運算符)。位與運算的運算規則是兩個相應的二進制位都為1,則該位為1,否則為0,如圖3.14所示。

圖3.14 位與運算

示例3-22】下面將對二進制數0011和0010進行位與運算。代碼如下:

0011和0010進行位與運算的工作方式如圖3.15所示。

圖3.15 位與運算的工作方式

運行結果如下:

3.位或運算

位或運算使用位或運算符(|)判斷兩個二進制數的位上的值是否為1。使用位或運算符構建的表達式被稱為位或運算表達式。其語法形式如下:

位或運算表達式需要兩個操作數,因此位或運算符是二元運算符(雙目運算符)。位或運算的運算規則是只要兩個相應的二進制位中有一個為1,則該位為1,如圖3.16所示。

圖3.16 位或運算

示例3-23】下面將對二進制數0011和0010進行位或運算。代碼如下:

0011和0010進行位或運算的工作方式如圖3.17所示。

圖3.17 位或運算的工作方式

運行結果如下:

4.位異或運算

位異或運算使用位異或運算符(^)判斷兩個二進制數的位是否相同。使用位異或運算符構建的表達式被稱為位異或運算表達式。其語法形式如下:

位異或運算表達式需要兩個操作數,因此位異或運算符是二元運算符(雙目運算符)。位異或運算的運算規則是兩個相應的二進制位相同則為0,否則為1,如圖3.18所示。

圖3.18 位異或運算

示例3-24】下面將實現對二進制數0001和0010的位異或運算。代碼如下:

0001和0010進行位異或運算的工作方式如圖3.19所示。

圖3.19 位異或運算的工作方式

運行結果如下:

主站蜘蛛池模板: 益阳市| 南康市| 永福县| 廊坊市| 柘荣县| 洪雅县| 东丰县| 杭锦旗| 廉江市| 闸北区| 白沙| 原阳县| 石台县| 新竹市| 石河子市| 平原县| 安化县| 缙云县| 永川市| 乾安县| 扎兰屯市| 谢通门县| 黎平县| 巩留县| 米泉市| 昌吉市| 崇左市| 平凉市| 呼和浩特市| 柳林县| 邹城市| 吉木乃县| 辰溪县| 玉龙| 乌兰浩特市| 武夷山市| 嵊州市| 富宁县| 岑巩县| 华宁县| 奈曼旗|