> 二进制0b开头;八进制0开头;十六进制0x开头
System.out.println(0b101);//二进制:5 (0b开头的)
System.out.println(0e1011);//0.0
System.out.println(011);//八进制:9 (0开头的)
System.out.println(11);//十进制:11
System.out.println(0x11C);//十六进制:284 (0x开头的)
System.out.printf("%010x\n",7);//0000000007 按10位十六进制输出,向右靠齐,左边用0补齐
System.out.printf("%010o\n",13);//0000000015 按10位八进制输出,向右靠齐,左边用0补齐
System.out.printf("%x\n",7);//7 按16进制输出
System.out.printf("%o\n",13);//15 按8进制输出
System.out.println(Integer.toBinaryString(11));//1011 二进制
暂时只有二进制 ,八进制,十进制,十六进制的写法,没找见四进制和三十二进制的写法。
> java进行两数交换时,如何不用中间量就交换
方法1:使用^操作来实现
int x = 10;
//用二进制表示:x=0b1010;
int y = 15;
//用二进制表示:x=0b1111;
System.out.println("x="+x+" y="+y);
x = x^y;
//x^y= 0b1010^0b1111 = 0b0101
y = x^y;
//x^y= 0b0101^0b1111 = 0b1010 =10
x = x^y;
//x^y= 0b0101^0b1010 = 0b1111 =15
System.out.println("x="+x+" y="+y);
方法2:使用+,-操作来实现
int x = 10;