移位

    // result:12
    public void leftMoveTest()
    {
        System.out.println(3 << 2);
    }

    // result:3
    public void rightMoveTest()
    {
        // 00001100右移两位为00000011转为十进制为3
        System.out.println(12 >> 2);
    }

    /**
     * int类型转成byte数组 ,result:[16,39,0,0]
     */
    public void intToByteArr()
    {
        int temp = 10000;
        byte[] b = new byte[4];
        for (int i = 0; i < b.length; i++)
        {
            // &0xff取低八位(&0xff后int中高的24个位会被清零,就是我们想要的了)
            b[i] = (byte) (temp & 0xff);
            System.out.println(b[i]);
            // 向右移8位
            temp = temp >> 8;
        }
    }

    /**
     * 字节数组转换为int ,result:10000
     */
    public void byteArrToInt()
    {
        byte[] b = new byte[] { 16, 39, 0, 0 };
        int s = 0;
        // 最低位
        int s0 = b[0] & 0xff;//00000000 00000000 00000000 00010000
        int s1 = b[1] & 0xff;//00000000 00000000 00000000 00100111
        int s2 = b[2] & 0xff;//00000000 00000000 00000000 00000000
        int s3 = b[3] & 0xff;//00000000 00000000 00000000 00000000
        s3 <<= 24;//0
        s2 <<= 16;//0
        s1 <<= 8;//00000000 00000000 00100111 00000000
        s = s0 | s1 | s2 | s3;//00100111 00010000=2^4+2^8+2^9+2^10+2^13
        System.out.println(s);
        System.out.println( Math.pow(2,4)+Math.pow(2,8)+Math.pow(2,9)+Math.pow(2,10)+Math.pow(2,13));
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值