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+ 次查看

开启您的 职业生涯

通过完成课程获得认证

立即开始
广告