美文网首页
位移运算

位移运算

作者: 夕阳西下几时回_ | 来源:发表于2021-04-23 14:19 被阅读0次

    /*======================================================
    * 位移规则 *
    * 左移:最高位(符号位)不变 右边补0 *
    * 右移:最高位不变 无符号数左边补0 有符号数补1 *
    * 反码:最高位不变其余全部取反 *
    * 补码:反码+1 *
    * =====================================================
    /

    /**
     * -65 << 5
     * 1000 0000 0100 0001  转2进制
     * 1111 1111 1011 1111  补码(反码+1)
     * 1111 0111 1110 0000  左移5位
     * 1111 0111 1101 1111  反码
     * 1000 1000 0010 0000  原码
     * 32+2048 = 2080
     * -2080
     * */
     static void signedLeftMove(){
        System.out.println("-65<<5="+(-65<<5));
    }
    
    /**
     * -71 >> 4
     * 1000 0000 0100 0001 转2进制
     * 1111 1111 1011 1110 反码
     * 1111 1111 1011 1111 补码
     * 1111 1111 1111 1011 右移4位
     * 1111 1111 1111 1010 反码
     * 1000 0000 0000 0101 原码
     * 1+4 = 5
     * -5
     * */
    static void signedRightMove(){
        System.out.println("-71>>4 = "+(-71>>4));
    }
    
    /**
     * 32 >> 3
     * 0000 0000 0010 0000  2进制
     * 0000 0000 0000 0100  右移3位
     * 4
     * **/
    
    static void unsignedRightMove(){
        System.out.println("32 >> 3 = "+(32>>3));
    }
    
    /**
     * 40 << 5
     * 0000 0000 0010 1000  2进制
     * 0000 0101 0000 0000 左移5位
     * 256+1024 = 1280
     * **/
    
    static void unsignedLeftMove(){
        System.out.println("40 << 5 = "+(40<<5));
    }

    相关文章

      网友评论

          本文标题:位移运算

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