java中二进制、八进制、十进制、十六进制的转换
2018-10-12 本文已影响0人
enjoy_CC
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));//十进制
//注意:负数在非十进制时输出为补码
}
}
运行结果:
image.png
然后简单总结一下原码、反码和补码:
正数:
原码、反码和补码都相同
负数:
原码:第一位为符号位,后面是数字位
反码:符号位不变,其它各位取反
补码:反码+1(相当于符号位不变,数字位取反+1)