移位运算符的介绍
移位运算符就是在二进制的基础上对数字进行平移。按照平移的方向和填充数字的规则分为三种:《《(左移)、》》(带符号右移)和》》》(无符号右移)。
java中有<<<这个运算符吗
移位运算符
左移位运算符(《《):能将运算符左边的运算对象向左移动运算符右侧指定的位数(在低位补0)
右移位运算符(》》)
Java也添加了一种“无符号”右移位运算符(》》》),它使用了“零扩展”:无论正负,都在高位插入0。
public class Test { public static void main(String args) { int i = -1; i 》》》= 10; System.out.println(i); long l = -1; l 》》》= 10; System.out.println(l); short s = -1; s 》》》= 10; System.out.println(s); byte b = -1; b 》》》= 10; System.out.println(b); }}-移位运算
结果:
C语言移位运算符怎么用
右移对符号位的处理和左移不同,对于有符号整数来说,比如int类型,右移会保持符号位不变,例如:10100110》》5(假设字长为8位),则得到的是11111101。总之,在c中,左移是逻辑/算术左移(两者完全相同),右移是算术右移,会保持符号位不变.实际应用中可以根据情况用左/右移做快速的乘/除运算,这样会比循环效率高很多.所以,shorta=0xf245,即a=1111001001000101,经过右移后,b=a》》8;b=1111111111110010,即b=0xfff2。注意是有符号右移为算术右移!!!