Java 中的按位零填充右移零運算子是什麼?


本文將幫助您瞭解 Java 中的按位零填充右移零運算子。請注意,按位零填充右移零運算子與按位零填充右移運算子相同。在瞭解右移運算子之前,讓我們回顧一下運算子。

運算子

在計算機程式設計中,我們經常需要執行一些算術或邏輯運算。在這種情況下,我們需要運算子來執行這些任務。因此,運算子基本上是一個符號或標記,它執行算術或邏輯運算並給我們有意義的結果。參與運算的值稱為運算元。

在本文中,我們將討論一種型別的按位運算子,所以讓我們直接進入主題。

按位運算子

運算子 含義
& 按位與
| 按位或
^ 按位異或
! 按位非
~ 按位補碼
<< 按位左移
>> 按位右移
>>> 按位零填充右移
<<= 按位左移賦值
>>= 按位右移賦值
>>>= 按位零填充右移賦值

本文是關於按位零填充右移運算子的,所以讓我們直接進入主題。

零填充右移運算子

此運算子將所有位向右移動一定數量的指定位。右移和零填充右移之間的區別在於,右移保留符號位(即,如果 a = -8,則 a >> 2 將是一個負數),而零填充右移不考慮符號位(即,如果 a = -8,則 a >>> 2 將是一個正數)。

您可能想知道,當數字為負數時,零填充右移運算子是如何工作的?答案是,如果 N 是要右移的位數,則多餘的位將向右移動 N 位並被丟棄,而零位將從左側移動 N 位並被保留。符號位變為 0,因此結果始終為正。

語法 數字 >>> (要移位的位數)。

例如 - 我們將對 1011 (11) 進行 1 位的零填充右移。

步驟 1 - 右移前

1 0 1 1

步驟 2 - 右移後

0 1 0 1 1

最右邊的位是丟棄的位,而最左邊的位是替換位。

因此,新數字是 0101 (5)。

讓我們來看另一個例子,我們將對 -5(二進位制為 11111111111111111111111111111011)進行 2 位的零填充右移。

步驟 1 - 右移前

1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1

步驟 2 - 右移後,最後 2 位 (11) 將被丟棄,並在左側插入兩個零,它們是替換位。

0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0

現在新數字是 1073741822,它是正數。

示例

下面是顯示所有上述示例的程式碼。

public class ZeroFillRightShiftOperator { // public class declaration public static void main(String[] args) { // main function declaration // initializing variables int a = 11; // Binary Number 01011 int b = -5; // Binary Number 11111111111111111111111111111011 // Example 1 where we Zero Fill Right Shifted Number 11 by 1 digit and got Number 5 as output int result_1 = a >>> 1; // Right Shifting 11 by 1 digit // Expected outcome 00101 = 5 System.out.println(" Zero Fill Right Shift of 11 by 1 digit is = " + result_1); // displaying result // Example 2 where we Zero Fill Right Shifted Number -5 by 2 digits and got Number 1073741822 as output int result_2 = b >>> 2; // Right Shifting -5 by 2 digits // Expected outcome 00111111111111111111111111111110 = 1073741822 System.out.println(" Zero Fill Right Shift of -5 by 2 digits is = " + result_2); // displaying result } }

輸出

Zero Fill Right Shift of 11 by 1 digit is = 5
Zero Fill Right Shift of -5 by 2 digits is = 1073741822

更新於:2022年9月5日

3K+ 瀏覽量

啟動您的職業生涯

完成課程獲得認證

開始
廣告
© . All rights reserved.