「java-左移」java左移运算符怎么计算
今天给各位分享java-左移的知识,其中也会对java左移运算符怎么计算进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
- 1、JAVA左移是乘2还是除2啊
- 2、java左移运算符的问题,一定给分!
- 3、java左移和右移有什么用?
- 4、java中左移运算
- 5、Java中,为什么-120左移一位是-240?求大神指出详细二进制左移步骤
JAVA左移是乘2还是除2啊
是乘以2,左移n位乘以2的n次方
比如十进制4二进制表示是0100,左移一位是1000,而1000是8
java左移运算符的问题,一定给分!
1.左移运算符
左移运算符用“”表示,是将运算符左边的对象,向左移动运算符右边指定的位数,并且在低位补零。其实,向左移n 位,就相当于乘上2 的n 次方,例如下面的例子。
public class data17
{
public static void main(String[] args)
{
int a=2;
int b=2;
System.out.println("a 移位的结果是:"+(ab));
}
}
运行结果
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 移位的结果是:"+(ab));
}
}
运行结果
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 的移位结果:"+(ab));
System.out.println("c 的移位结果:"+(cd));
}
}
运行结果
a 的移位结果:4
c 的移位结果:-4
分析上面的程序段:
a 的值是16,转换成二进制是00010000,让它右移两位成00000100 即4。
c 的值是-16,转换成二进制是11101111,让它右移一位成11111011 即-4。
java左移和右移有什么用?
左移和右移并不常用,在一些特殊情况下才会使用,比如加解密时,会大量用到。
另外,偶尔在优化少数特殊代码的速度时可能用到,例如x*4就可以x2来代替,而后者比前者的速度快了好多倍。
java中左移运算
不是java任何语言都没有, 位运算中左移跟符号没有关系的, 因为最高位就是符号位
例如8位的byte中最高位如果是 1那就表示负数 如果是左移一位, 那么最高位就会丢掉, 最低位补0 1111 1111 1 就会变成 1111 1110
Java中,为什么-120左移一位是-240?求大神指出详细二进制左移步骤
左移运算,左移几位就乘以2的几次方,移动一位就乘以2的一次方,即-120*2=-240.同理,右移几位就除以2的几次方。
关于java-左移和java左移运算符怎么计算的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。