美文网首页
逻辑左移、逻辑右移

逻辑左移、逻辑右移

作者: hswwjp | 来源:发表于2018-12-15 12:09 被阅读8次

    代码:

        public static void main(String[] args) {
            int num = 53;
            int m = 1;
            // 测试向左移位
            System.out.println(String.format(" 数字 %d 的二进制向左移 %d 位是 %d", num, m, leftShift(num, m)));
            // 测试向右移位
            System.out.println(String.format(" 数字 %d 的二进制向右移 %d 位是 %d", num, m, rightShift(num, m)));   
    
            System.out.println();
    
            m = 3;
            // 测试向左移位
            System.out.println(String.format(" 数字 %d 的二进制向左移 %d 位是 %d", num, m, leftShift(num, m)));
            // 测试向右移位
            System.out.println(String.format(" 数字 %d 的二进制向右移 %d 位是 %d", num, m, rightShift(num, m)));   
        }
    
        /**
         * @Description: 向左移位
         * @param num- 等待移位的十进制数, m- 向左移的位数
         * @return int- 移位后的十进制数
         */
        public static int leftShift(int num, int m) {
            return num << m;
        }
    
        /**
         * @Description: 向右移位(逻辑右移:左边补 0 即可;算术右移:保持符号位不变,除符号位之外的右移一位并补符号位 1,补的 1 仍然在符号位之后。)
         * @param num- 等待移位的十进制数, m- 向右移的位数
         * @return int- 移位后的十进制数
         */
        public static int rightShift(int num, int m) {
            return num >>> m;
        }
    
    逻辑右移
    算术右移

    输出:

    数字 53 的二进制向左移 1 位是 106
    数字 53 的二进制向右移 1 位是 26
    
    数字 53 的二进制向左移 3 位是 424
    数字 53 的二进制向右移 3 位是 6
    

    参考资料:https://time.geekbang.org/column/article/71840

    相关文章

      网友评论

          本文标题:逻辑左移、逻辑右移

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