java中二进制、八进制、十进制、十六进制的转换

public class HelloWorld {
    public static void main(String []args) {
        int a=-0b11;//0b开头为二进制数
        int b=-011;//0开头为八进制数
        int c=-11;//默认为十进制数
        int d=-0x11;//0x开头为十六进制数
        System.out.println(a);
        System.out.println(b);
        System.out.println(c);
        System.out.println(d);//以上默认输出十进制
        System.out.println(Integer.toBinaryString(d));//  二进制
        System.out.println(Integer.toOctalString(d));//八进制
        System.out.println(Integer.toHexString(d));//十进制
        //注意:负数在非十进制时输出为补码
    }
}

运行结果:


java中二进制、八进制、十进制、十六进制的转换_第1张图片
image.png

然后简单总结一下原码、反码和补码:
正数:
原码、反码和补码都相同
负数:
原码:第一位为符号位,后面是数字位
反码:符号位不变,其它各位取反
补码:反码+1(相当于符号位不变,数字位取反+1)

你可能感兴趣的:(java中二进制、八进制、十进制、十六进制的转换)