java移位运算符详解

前言:java移位运算符详解
移位运算符分类:左移运算符<<  右移运算符>> 无符号位右移>>>
一、左移运算符<<
    ①、书写格式
      value<<num
    即将value数值转换为二进制后,向左移动num位。高位移除舍去、低位补零。
    在移动过程中,short、byte、char类型移位后会变成int型。在int、short、byte、char、
   移位过程中实际上移动的是:实际移位数=移位数%32.例如,当一个int型移动33位与移动
   一位结果是一样的。

   
 ②、运算规则
    ·先把运算数按二进制形式表示,并向左移动num位,高num位移除舍弃,低num位补零。
    ·当short、char、byte移位时,自动转换位int位参与运算。

 ③、数学意义
       ·在没有溢出的情况下,对于负数和正数左移运算,就相当于乘法运算。左移n位就相当于乘以2的n次方。
 ④、计算方式
    例如:3 <<2(3为int型)
       ·把3转换为二进制数字0000 0000 0000 0000 0000 0000 0000 0011,
       ·把该数字高位(左侧)的两个零移出,其他的数字都朝左平移2位
       ·在低位(右侧)的两个空位补零。则得到的最终结果是0000 0000 0000 0000 0000 0000 0000 1100,
       ·转换为十进制是12。

二、右移运算符>>
    ①、书写格式
         value>>num
         即将value转换成二进制位,向右移动num位,低位移出舍去,若为正数高位补零,若为负数,高位补1.
    ②、运算规则
        ·按二进制形式把所有的数字向右移动对应的位数,低位移出(舍弃),高位的空位补符号位,即正数补零,负数          补1
        ·当右移的运算数是byte 和short、char类型时,将自动把这些类型扩大为 int 型。
    ③、数学意义
         ·右移一位相当于除2,右移n位相当于除以2的n次方。
    ④、计算方法
        ·11 >>2(11为int型)
        ·11的二进制形式为:0000 0000 0000 0000 0000 0000 0000 1011
        ·把低位的最后两个数字移出,因为该数字是正数,所以在高位补零。
        ·最终结果是0000 0000 0000 0000 0000 0000 0000 0010。
        ·转换为十进制是3。
三、无符号位右移>>>
    value >>> num
    num 指定要移位值value 移动的位数。
    无符号右移的规则只记住一点:忽略了符号位扩展,0补最高位
四、移位运算符的意义
     二进制运算符,包括位运算符和移位运算符,使程序员可以在二进制基础上操作数字,可以更有效的进行运算,
 并且可以以二进制的形式存储和转换数据,是实现网络协议解析以及加密等算法的基础。
  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值