Java移位运算符

本文介绍了Java中的三种移位运算符:左移(<<)、有符号右移(>>)和无符号右移(>>>)。内容包括每种运算符的工作原理、示例代码以及在处理正数和负数时的注意事项,特别是溢出问题和负数的特殊处理。
摘要由CSDN通过智能技术生成

    Java中移位运算符有三种,分别是左移(<<)、有符号右移(>>)和无符号右移(>>>),移位运算符主要是对数据的二进制位进行操作的,由于计算机中对数字是按补码形式存储的,所以在对数字进行位运算时,也就是对数字的补码进行操作,而不是原码和反码(建议不了解原码、反码和补码的先看一下https://blog.csdn.net/lanmuhhh2015/article/details/78549400)。
1、左移运算符(<<)
左移就是将数字的补码的所有位向左移,低位补0。假设数字num左移3位,则移位后的结果为num*2^3,测试代码如下:

/*
 * 补码:0000 1010 (移位前 10)
 * 补码:0101 0000 (移位后 80)
 * */
System.out.println(10<<3); // 结果为80
/*
 * 补码:1111 0110 (移位前 -10)
 * 补码:1011 0000 (移位后 -80)
 * */
System.out.println(-10<<3); // 结果为-80

// 移的位过大时,会导致溢出,结果就不正确了,所以移位时要考虑溢出的情况
System.out.println(10<<29); //1073741824
System.out.println(10<<28); //-1610612736
System.out.p
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值