Java 中的左移运算符

javaobject oriented programmingprogramming更新于 2024/11/9 2:20:17

编程语言中指令的执行涉及各种符号(称为"运算符")的操作。运算符告诉计算机在设置的代码中应执行什么操作/值评估。基于算术的运算包括执行基本计算,如加法/减法/乘法/除法。使用关系导向的运算来执行,这些运算指示任何两个值之间的相互作用,并分析一个值何时大于/等于/小于另一个值 - 显示其在特定条件下的相关性。逻辑运算的主要作用通常包括根据开发人员的意图将不同的质量语句合并为重要的参数,作为 True/False 语句标准,有效地使用所有三种不可或缺的运算符类型。

Java 中的左移运算符

Java 是一种功能强大的语言,提供了大量的运算符,其中之一是左移运算符,它有助于将数字移动一定数量的位置。此运算符不仅可用于移位数字,还可用于移位字符串,这意味着它允许更复杂的操作。由于不同的语言采用不同的移位操作和行为,因此确定移位概念如何应用于 Java 非常重要。因此,必须了解此运算符的风险和好处。

语法

此运算符的语法如下 -

X<<n
这里,
x:整数
n:非负整数

返回类型

x 向左移动 n 位后的数字。

异常

当 n 为负数时,输出未定义

表示

十进制表示 - 基数为 -10 的数字系统仅具有 0、1、2、3、4、5、6、7、8 和 9 十个状态,用于以十进制形式表示数字。例如,4、10、16 等。

二进制表示 − 使用仅具有状态 0 和 1 的二进制数字系统以二进制形式表示数字。例如,以 9 为基数的十进制数字系统将 4 的二进制等价表示为 100,将 10 的二进制等价表示为 1010,将 16 的二进制等价表示为 1000,等等。

左移

左移表示二进制编码中每个位向左移位。

左移是使用二进制数运算时必不可少的过程。例如,将数字 5 向左移动一位,结果为 10,即 1010。同样,将 10 向左移动两位,结果为 40,即 101000。

但这个过程不仅仅是改变数字。本质上,它是将每位向左移动一位。因此,引入了更大的复杂性和变化,如果数字只是移动,则不会出现这种情况。这会导致困惑和粗鲁程度的增加,使操作更加有趣。

将 x 左移 n 个位置 - x*2n

示例

示例 1

// Java 程序用于说明
// 左移运算符的工作原理

import java.io.*;


public class example {
   // Main 方法
   public static void main (String[] args) {
		
    // 要移位的数字
    int x = 5;
    
    // 位置数
    int n = 1;
    
    // 使用左移运算符将 x 向左移动 n 个位置
    int answer = x << n;
    
    // 打印将 x 向左移动 n 个位置后得到的数字
    System.out.println("将 " + x + " 左移 " + n + " 个位置: " + answer);
    
    // 要移位的数字
    x = answer;
    
    // 位置数
    n = 2;
    
    // 使用左移运算符将 x 向左移动 n 个位置
    answer = answer << n;
    
    // 打印将 x 向左移动 n 个位置后得到的数字
    System.out.println("将 " + x + " 左移 " + n + " 个位置: " + answer);
		
   }
}

输出

Left shift 5 by 1 positions: 10
Left shift 10 by 2 positions: 40

示例 2

// Java 程序用于说明
// 左移运算符的工作原理

import java.io.*;

public class example {

   // Main 方法
   public static void main (String[] args) {
		
    // 要移位的数字
    int x = -2;
    
    // 位置数
    int n = 1;
    
    // 使用左移运算符将 x 向左移动 n 个位置
    int answer = x << n;
    
    // 打印将 x 向左移动 n 个位置后获得的数字
    System.out.println("将 " + x + " 左移 " + n + " 个位置:" + answer);
    
    // 要移位的数字
    x = answer;
    
    // 位置数
    n = 2;
    
    // 使用左移运算符将 x 向左移动 n 个位置
    answer = answer << n;
    
    // 打印将 x 向左移动 n 个位置后获得的数字
    System.out.println("将 " + x + " 左移 " + n + " 个位置:" + answer);
		
	}
}

输出

左移 -2 1 位:-4
左移 -4 2 位:-16
  • 时间复杂度 − O(1)

  • 空间复杂度− O(1)

注意− 执行算术左移需要用 0 填充最右边的空位,因为这不会改变数字的符号,这意味着在移位过程中不考虑符号位。这意味着这种类型的左移与逻辑(无符号)左移的结果相同,因此不需要单独的无符号移位运算符。

结论

运算符表示编码中用于指示应执行哪个过程的关键符号或字符。通常分为三大类 - 算术、关系和逻辑 - 每个类在编程操作中都发挥着重要作用。其中一个例子是左移运算符,它在将数字移动指定数量的位置以及处理更复杂的字符串作业方面非常有用。


相关文章


有用资源