packagecom.db2;/*** 将一个十进制转换为二进制,八进制,十六进制
*
*@authordenny
**/publicclassDemo2 {publicstaticvoidmain(String[] args) {
toBin(6);
toBin(-6);
toOct(60);
toOct(-60);
toHex(60);
toHex(-60);
}//转换2进制publicstaticvoidtoBin(intnum) {
toTran(num,1, 1);//1是2进制最大值,二进制只有0,1,1位右移}//八进制publicstaticvoidtoOct(intnum) {
toTran(num,7, 3);//7是2进制最大值,八进制只有0-7最大是7,3位2进制表示一个八进制右移3位}//十六进制publicstaticvoidtoHex(intnum) {
toTran(num,15, 4);//15是十六进制最大值,十六进制只有0-15最大是15,4位2进制表示一个八进制右移4位}//转换函数PRivatestaticvoidtoTran(intnum,intbase,intoffset) {//num要转换的数,求与的数,右移的数char[] ch = { '0','1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F' };//十六进制元素同时包含2,进制,八进制//存储转换过的数//最大只有32位char[] arr =newchar[32];//定义控制数组的下标intpos =arr.length;//开始转换while(num != 0) {inttemp = num & base;//与位arr[--pos] = ch[temp];//找到并存储num = num >>>offset;
}//输出for(inti = pos; i < arr.length; i++) {
System.out.print(arr[i]);
}
System.out.println();
}
}