Java 左移操作符

Java 左移操作符

编程语言中的指令执行涉及各种被称为”操作符”的符号的操作。操作符告诉计算机在一系列代码中应执行哪些动作/值评估。基于算术的操作包括执行基本计算,如加法/减法/乘法/除法。关系操作符用于指示两个值之间的关系,并在一个值相对于另一个值的大小/相等/小于的条件下进行分析和判断。逻辑操作符的主要作用是将多种条件语句合并为有意义的论断,根据开发人员的意图以True/False语句作为准则,有效地使用这三种不可或缺的操作符类型。

Java中的左移操作符

Java是一种强大的语言,提供了各种操作符,其中之一是左移操作符,它在将一个数字向左移动一定数量的位置方面提供了很大的便利。这个操作符不仅可以用于移动数字,还可以用于移动字符串,这意味着它允许进行更复杂的操作。由于不同的语言使用不同的移位操作和行为,所以找出移位的概念在Java中的应用方式非常重要。因此,人们必须了解这个操作符的危险和好处。

语法

这个操作符的语法如下所示-

X<<n
Here,
x: an integer
n: a non-negative integer

返回类型

将x左移n位后的数字。

异常

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

表示

十进制表示 - 使用只有0、1、2、3、4、5、6、7、8和9的十进制系统表示数字。例如,4、10、16等。

二进制表示 - 使用只有0和1的二进制系统表示数字。例如,9进制十进制数系统将4的二进制等价物表示为100,10为1010,16为1000等。

左移

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

Java 左移操作符

左移是处理二进制数时的重要过程。例如,将数字5左移一位得到10,或1010。同样,将数字10左移两位得到40,或101000。

但是,这个过程不仅仅改变了数字。实际上,它是将每个位向左移动一位。因此,引入了更复杂和多样化的情况,这在仅进行位移的情况下是不存在的。这增加了操作的复杂性和困难,使其更有趣。

Left shift x by n positions - x*2n

Java 左移操作符

示例

示例1

// Java program to illustrate the
// working of left shift operator


import java.io.*;


public class example {
   // Main method
   public static void main (String[] args) {

      // Number to be shifted
      int x = 5;

      // Number of positions
      int n = 1;

      // Shifting x by n positions towards left using left shift operator
      int answer = x << n;

      // Print the number obtained after shifting x by n positions towards left
      System.out.println("Left shift " + x + " by " + n + " positions: " + answer);

      // Number to be shifted
      x = answer;

      // Number of positions
      n = 2;

      // Shifting x by n positions towards left using left shift operator
      answer = answer << n;

      // Print the number obtained after shifting x by n positions towards left
      System.out.println("Left shift " + x + " by " + n + " positions: " + answer);

   }
}

输出

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

示例2

// Java program to illustrate the
// working of left shift operator

import java.io.*;

public class example {

   // Main method
   public static void main (String[] args) {

      // Number to be shifted
      int x = -2;

      // Number of positions
      int n = 1;

      // Shifting x by n positions towards
      // left using left shift operator
      int answer = x << n;

      // Print the number obtained after shifting x by n positions towards left
      System.out.println("Left shift " + x + " by " + n + " positions: " + answer);

      // Number to be shifted
      x = answer;

      // Number of positions
      n = 2;

      // Shifting x by n positions towards
      // left using left shift operator
      answer = answer << n;

      // Print the number obtained after shifting x by n positions towards left
      System.out.println("Left shift " + x + " by " + n + " positions: " + answer);

    }
}

输出

Left shift -2 by 1 positions: -4
Left shift -4 by 2 positions: -16
  • 时间复杂度 − O(1)

  • 空间复杂度 − O(1)

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

结论

运算符代表在编码中使用的关键符号或字符,用于指示应执行的过程。通常分为三个主要组 -算术、关系和逻辑- 每个组在编程操作中都发挥着重要作用。一个示例是左移运算符,它在将数字左移指定位置的同时也对字符串进行更复杂的处理。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程