java的运算符

java中三个移位运算符:
左移:<<
带符号右移:>>
无符号右移:>>>

“ < <”, “> > ”, “> > > ”在Java中是左移、有符号右移和无符号右移运算符。位移运算符只对int值进行操作,如果不是int,编译器会报错。在Java中,一个int的长度始终是32bit,也就是4个字节。

1)左移动运算符:
会将操作的数向左边移动,移动的位的个数由右操作数指定,左移后,低位会被自动补零(0)。
(2)右移动运算符:
反过来,把操作数向右移动,移动的位个数同样由右操作数指定。注意:面对带正负号的数,会采用符号扩展,如果原值是正数,则高位补上0;如果原值是负数,高位补1。
(3)无正负号的右移运算符(>>>):
采用0补充,意思就是说,无论是正号还是负号,都在高位补0。

public class Test {

public static void main(String[] args) {

int m=-7;

System.out.println("m的二 进 制码是:"+Integer.toBinaryString(m));

System.out.println("m>>2的二进制码是:"+Integer.toBinaryString(m>>2));

System.out.println("(m>>2)="+(m>>2));

System.out.println("m<<2的二进制码是:"+Integer.toBinaryString(m<<2));

System.out.println("(m<<2)=:"+(m<<2));

System.out.println("m>>>24的二进制码是:"+Integer.toBinaryString(m>>>24));

System.out.println(" m>>>24 :"+ (m>>>24));

}

}

-7的原码:10000000000000000000000000000111

反码:11111111111111111111111111111000

补码:11111111111111111111111111111001

计算机中存的是补码

m的二 进 制码是:11111111111111111111111111111001(m的补码)

m>>2的二进制码是:11111111111111111111111111111110

转换后的原码:10000000000000000000000000000010

(m>>2)=-2

m<<2的二进制码是:11111111111111111111111111100100

转换后的原码:10000000000000000000000000011100

(m<<2)=-28

m>>>24的二进制码是:00000000000000000000000011111111

转换后的原码:00000000000000000000000011111111

m>>>24 =255

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值