java中移位运算,java位移符号计算

java中移位运算,java位移符号计算,Java移位运算符详解实例(小结)

本文主要介绍Java移位运算符的详细讲解示例(总结),通过示例代码进行了非常详细的介绍,对大家的学习或工作有一定的参考价值。有需要的朋友就跟着下面的边肖学习吧。

移位运算符主要有:左移运算符()、右移运算符()和有符号右移运算符()。移位运算符操作的对象是二进制位,移位运算符可以单独用来处理int整数。

运算符

意义

向左移动运算符,将运算符左侧的对象向左移动运算符右侧指定的位数(低位加0)。

“有符号”右移运算符将运算符左侧的对象向右移动运算符右侧指定的位数。使用符号扩展机制,即如果值为正,则高位加0,如果值为负,则高位加1。

“无符号”右移位运算符将运算符左侧的对象向右移动运算符右侧指定的位数。采用0扩展机制,也就是说,不管值是正还是负,都在高位加0。

1左移运算符

左移运算符由“”表示,它将运算符左侧的对象向左移动运算符右侧指定的位数,低位填充零。实际上,左移N位相当于乘以2的N次方,比如下面这个例子。

公共类测试{

公共静态void main(String[] args) {

int a=2,b=2,c;

c=ab

system . out . print(' a shift的结果是' c ');

}

}

输出:8

分析上面的代码,2的二进制是0000010,左移2位,变成00001000,也就是8。如果换个角度分析,它左移2位,实际上是乘以2的2次方,结果还是8。

2无符号右移运算符

右移运算符的符号是“”,表示运算符左侧的对象向右移动运算符右侧指定的位数,高位加0。实际上,右移N位相当于除以2的N次方。

公共类测试{

公共静态void main(String[] args) {

int a=16

int b=2;

system . out . println(' a shift is '(ab)的结果);

}

}

输出:4

上面分析代码:16的二进制是00010000,右移2位变成0000100,也就是4。如果换个角度分析,它右移2位,实际上除以2的2次方,结果还是4。

3带符号的右移运算符

有符号右移位运算符由“”表示,它将运算符左侧的操作数向右移动运算符右侧指定的位数。如果为正,则在高位加零;如果是负数,则在高位加1。

公共类测试{

公共静态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)的移位结果);

}

}

输出:4和-4

上面的分析代码:A的值是16,转换成二进制00010000,右移两位变成0000100,就是4,C的值是-16,转换成二进制1101111,右移一位变成11111011,就是-4。

这就是本文的全部内容。希望对大家的学习有帮助,支持我们。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: