首页编程java编程java左移有什么意义 java位移运算符有什么意义

java左移有什么意义 java位移运算符有什么意义

编程之家2023-10-1387次浏览

大家好,java左移有什么意义相信很多的网友都不是很明白,包括java位移运算符有什么意义也是一样,不过没有关系,接下来就来为大家分享关于java左移有什么意义和java位移运算符有什么意义的一些知识点,大家可以关注收藏,免得下次来找不到哦,下面我们开始吧!

java左移有什么意义 java位移运算符有什么意义

java左移运算符的问题,一定给分!

1.左移运算符

左移运算符用“<<”表示,是将运算符左边的对象,向左移动运算符右边指定的位数,并且在低位补零。其实,向左移n位,就相当于乘上2的n次方,例如下面的例子。

public class data17

java左移有什么意义 java位移运算符有什么意义

{

public static void main(String[] args)

{

java左移有什么意义 java位移运算符有什么意义

int a=2;

int b=2;

System.out.println("a移位的结果是:"+(a<<b));

}

}

运行结果

a移位的结果是:8

分析上面的程序段:

首先从本质上来分析,2的二进制是00000010,它向左移动2位,就变成了00001000,即8。如果从另一个角度来分析,它向左移动2位,其实就是乘上2的2次方,结果还是8。

2.右移运算符

右移运算符用符号“>>>”表示,是将运算符左边的对象向右移动运算符右边指定的位数,并且在高位补0,其实右移n位,就相当于除上2的n次方。

public class data18

{

public static void main(String[] args)

{

int a=16;

int b=2;

System.out.println("a移位的结果是:"+(a>>>b));

}

}

运行结果

a移位的结果是:4

分析上面的程序段:从本质上来分析,16的二进制是00010000,它向右移动2位,就变成了00000100,即4。如果从另一个角度来分析,它向右移动2位,其实就是除以2的2次方,结果还是4。

3.带符号的右移运算符

带符号的右移运算符用符号“>>”表示,是将运算符左边的运算对象,向右移动运算符右边指定的位数。如果是正数,在高位补零,如果是负数,则在高位补1,先看下面一个简单的例子。

public class data19

{

public static void main(String[] args)

{

int a=16;

int c=-16;

int b=2;

int d=2;

System.out.println("a的移位结果:"+(a>>b));

System.out.println("c的移位结果:"+(c>>d));

}

}

运行结果

a的移位结果:4

c的移位结果:-4

分析上面的程序段:

a的值是16,转换成二进制是00010000,让它右移两位成00000100即4。

c的值是-16,转换成二进制是11101111,让它右移一位成11111011即-4。

java中的<<是什么意思

<<:是逻辑左移,右边补0,符号位和其他位一样要移动。

数学意义:在数字没有溢出的前提下,对于正数和负数,左移一位都相当于乘以2的1次方,左移n位就相当于乘以2的n次方。

计算:3<< 2

3<< 2,则是将数字3左移2位

1、首先把3转换为二进制数字0000 0000 0000 0000 0000 0000 0000 0011

2、然后把该数字高位(左侧)的两个零移出,其他的数字都朝左平移2位,最后在低位(右侧)的两个空位补零。

3、则得到的最终结果是0000 0000 0000 0000 0000 0000 0000 1100,则转换为十进制是12。

扩展资料

Java语言支持的赋值运算符

=:简单的赋值运算符,将右操作数的值赋给左侧操作数。如C= A+ B将把A+ B得到的值赋给C。

+=:加和赋值操作符,它把左操作数和右操作数相加赋值给左操作数。如C+= A等价于C= C+ A。

-=:减和赋值操作符,它把左操作数和右操作数相减赋值给左操作数。如C-= A等价于C= C-

A。

*=:乘和赋值操作符,它把左操作数和右操作数相乘赋值给左操作数。如 C*= A等价于C= C* A。

/=:除和赋值操作符,它把左操作数和右操作数相除赋值给左操作数。如 C/= A等价于C= C/ A。

(%)=:取模和赋值操作符,它把左操作数和右操作数取模后赋值给左操作数。如 C%= A等价于C= C%A。

<<=:左移位赋值运算符。如C<<= 2等价于C= C<< 2。

>>=:右移位赋值运算符。如C>>= 2等价于C= C>> 2。

&=:按位与赋值运算符。如 C&= 2等价于C= C&2。

^=:按位异或赋值操作符。如C ^= 2等价于C= C ^ 2。

|=:按位或赋值操作符。如C|= 2等价于C= C| 2。

参考资料:百度百科:Java

java中无符号右移有什么意义呢

无符号右移在数据变换时非常重要。

比如对byte b;做无符号右移,在众多散列、加密、压缩、影音媒体编码、序列化格式都会用到。

如果没有这个无符号右移,就需要用更大的空间去做有符号右移。

比如byte就需哟short,short就需要int去做,浪费空间和时间。

所谓“左移两位是乘以4(2的2次方),右移两位是除以4”原先都是指在无符号环境下成立。只因java没有无符号的基础类型,所以你理解成有符号下才是这样。

总之,无符号右移的应用场合大大多于有符号右移。。

java位移运算符有什么意义

给你举个例子,乘除法可以使用位运算,速度更快。很多底层的东西是用位运算去实现的,你去看看java的很多源码,还有IO流的处理有时候会用位运算,二进制文件的读写解析等都需要位运算,如果你了解底层的东西,你会位运算,这回让你的程序生涯更加精彩,望采纳,谢谢

好了,文章到这里就结束啦,如果本次分享的java左移有什么意义和java位移运算符有什么意义问题对您有所帮助,还望关注下本站哦!

控制器java写什么,java专业技能java 栈和队列的区别是什么 JAVA中队列和栈的区别