Java基础,if,Integer最大值最小值,负数移位

版权声明:本文为博主原创文章,转载请说明出处 https://blog.csdn.net/u010002184/article/details/86439186

如下:

        int a = 2;
        if (a) {//错误的,Incompatible type,required boolean 

        }

        if (!a) {//错误的,Operate ! can not be applied to int

        }

        System.out.println(Integer.MIN_VALUE);//-2147483648
        System.out.println(Integer.MIN_VALUE / -1);//-2147483648
        System.out.println(Integer.MAX_VALUE);//2147483647
        System.out.println(Integer.MAX_VALUE / -1);//-2147483647


        //c/b=a,c是被除数,b是除数,a是商;如果被除数与除数都是正数或都是负数,则商是正数;反之商是负数
        System.out.println(6 / 2);//3
        System.out.println(-6 / -2);//3
        System.out.println(6 / -2);//-3
        System.out.println(-6 / 2);//-3
		
		
		System.out.println(2<<<2);//错误,Expression expected,java没有按位左移运算符
        System.out.println(8 >>> 2);//2
        System.out.println(-8>>>2);//1073741822
        System.out.println(Math.pow(-2, 30) - 1);//1.073741823E9
        System.out.println(Math.pow(-2, 29) - 1);//-5.36870913E8
        System.out.println(-Math.pow(-2, 30));//-1.073741824E9
		
		
		System.out.println(15 >> 1);//7
        System.out.println(-15 >> 1);//-8
        System.out.println(-15 >>> 1);//2147483640

以上基于java1.8

负数在计算机中是按补码存储的,所以需要按照补码右移,高位补1

正数在计算机中是按原码存储的,所以原码直接右移即可,高位补0

end

猜你喜欢

转载自blog.csdn.net/u010002184/article/details/86439186
今日推荐