黑马程序员技术交流社区
标题:
给你们我们老师给的进制转换代码让你们研究研究
[打印本页]
作者:
王雷
时间:
2012-9-27 21:43
标题:
给你们我们老师给的进制转换代码让你们研究研究
class Test3
{
public static void main(String[] args)
{
int n=170; //10011
//toBinary(n);
//toOctal(n);
toHex(n);
/*
输出效果:19的二进制表示形式:10011
要得到这个效果,可以将每次操作后得到的值保存到数组中,最后将数组的元素打印出来.
*/
}
//转换成十六进制
public static void toHex(int n){
char[] arr=new char[8];
int index=0;
while(true){
int code=n%16; //1
/*
因为16进制中没有10,11,12,13,14,15 而是用a,b,c,d,e,f来代表
*/
char c=0;
if(code>9){
c=(char)(code-10+'a'); //13-10+'a'==99 强转 'c'
}else{
c=(char)(code+'0'); //1+'0'==49 强转 '1'
}
arr[index++]=c; //index++是为了将下一个得到的值保存到数组的下一个位置
n=n/16;
if(n<16){
arr[index]=(n>9)?(char)(n-10+'a'):(char)(n+'0');
break;
}
}
for(int i=index;i>=0;i--){
System.out.print(arr[i]);
}
}
//转换成八进制
public static void toOctal(int n){
int[] arr=new int[11];
int index=0;
while(true){
int code=n%8; //1
arr[index++]=code; //index++是为了将下一个得到的值保存到数组的下一个位置
n=n/8;
if(n<8){
arr[index]=n;
break;
}
}
for(int i=index;i>=0;i--){
System.out.print(arr[i]);
}
}
//n代表的是要转换的数字 转换二进制
public static void toBinary(int n){
int[] arr=new int[32];
int index=0;
while(true){
int code=n%2; //1
arr[index++]=code; //index++是为了将下一个得到的值保存到数组的下一个位置
n=n/2;
if(n<2){
arr[index]=n;
break;
}
}
for(int i=index;i>=0;i--){
System.out.print(arr[i]);
}
}
}
复制代码
作者:
王雷
时间:
2012-9-27 21:44
自己顶一下吧
作者:
王雷
时间:
2012-9-29 08:17
没人对这个有研究么????
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2