class ArrDemo4 { public static void main(String[] args) { tobin(0); toba(60); tohex(-6); } //十进制转二进制 /*public static void tobin(int x) { StringBuffer sb=new StringBuffer(); while(x!=0) { sb.append(x%2); x=x/2; } System.out.println(sb.reverse()); } */ //下面转十六进制 /*public static void tohex(int x) { StringBuffer sb=new StringBuffer(); while(x!=0) { int t=x&15; if(t>9) sb.append((char)(t-10+'A')); else sb.append(t); x=x>>>4; } System.out.println(sb.reverse()); }*/ //这个可以算负数,上面的转二进制的算法不能算负数; //转二进制可以算负数的算法 /*public static void tobin(int x) { StringBuffer sb=new StringBuffer(); while(x!=0) { int t=x&1; sb.append(t); x=x>>>1; } System.out.println(sb.reverse()); }*/ //所有功能合并 public static void tobin(int num)//转二进制 { arrzh(num,1,1); } public static void toba(int num)//转八进制 { arrzh(num,3,7); } public static void tohex(int num)//转十六进制 { arrzh(num,4,15); } public static void arrzh(int num,int z,int base) { StringBuffer sb=new StringBuffer(); if(num==0) System.out.println(0); else { while(num!=0) { int t=num&base; if(t>9) sb.append((char)(t-10+'A')); else sb.append(t); num=num>>>z; } System.out.println(sb.reverse()); } // int a[]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'}; //也可以用数组来存储数据 } }