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等。
左移
左移表示在二进制编码中将每个位向左移动。
左移是处理二进制数时的重要过程。例如,将数字5左移一位得到10,或1010。同样,将数字10左移两位得到40,或101000。
但是,这个过程不仅仅改变了数字。实际上,它是将每个位向左移动一位。因此,引入了更复杂和多样化的情况,这在仅进行位移的情况下是不存在的。这增加了操作的复杂性和困难,使其更有趣。
Left shift x by n positions - x*2n
示例
示例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填充右侧空位,因为这不会改变数字的符号,即在移位期间不考虑符号位。这意味着这种类型的左移与逻辑(无符号)左移具有相同的结果,因此不需要单独的无符号移位运算符。
结论
运算符代表在编码中使用的关键符号或字符,用于指示应执行的过程。通常分为三个主要组 -算术、关系和逻辑- 每个组在编程操作中都发挥着重要作用。一个示例是左移运算符,它在将数字左移指定位置的同时也对字符串进行更复杂的处理。