美文网首页
Java运算符

Java运算符

作者: arrow_zh | 来源:发表于2019-08-06 12:05 被阅读0次

    1、左移 <<

    1.1 实例
            int value= 10;
            int newValue = (value<< 1);
            System.out.println(newValue);   //输出为20
    
    1.2 分析

    先将10转换为2进制 : 0000 0000 0000 1010 十进制为:10
    左移(向左移除高位,低位补0):0000 0000 0001 0100 十进制为:20
    数学公式: value(待移位的数字) 乘以 2的n(移动位数)次方 即 10 * 2¹ = 20

    2、右移 >>

    2.1 实例
            int value= 10;
            int newValue = (value>> 1);
            System.out.println(newValue );   //输出为 5
    
    2.2 分析

    先将10转换为2进制 : 0000 0000 0000 1010 十进制为:10
    左移(向右移除低位,高位补0):0000 0000 0000 0101 十进制为:5
    数学公式: value(待移位的数字) 除以 2的n(移动位数)次方 即 10 / 2¹ = 5

    3、总结

    箭头指向的方向为二进制数字移动的方向
    当int类型进行左移操作时,左移位数大于等于32位操作时,会先求余(%)后再进行左移操作。也就是说左移32位相当于不进行移位操作,左移40位相当于左移8位(40%32=8)
    当long类型进行左移操作时,long类型在二进制中的体现是64位的,因此求余操作的基数也变成了64,也就是说左移64位相当于没有移位,左移72位相当于左移8位(72%64=8)
    注意int long 最高位表示正负数,0-表示正数 1-表示负数 所以在移位的时候需要注意

    相关文章

      网友评论

          本文标题:Java运算符

          本文链接:https://www.haomeiwen.com/subject/xlsidctx.html