for(int i=1;i<=str.length();i++)
{
cha=str.charAt(str.length()-i);
switch(cha)
{
case '1': lg=lg+1*jing;break;
case '2': lg=lg+2*jing;break;
case '3': lg=lg+3*jing;break;
case '4': lg=lg+4*jing;break;
case '5': lg=lg+5*jing;break;
case '6': lg=lg+6*jing;break;
case '7': lg=lg+7*jing;break;
case '8': lg=lg+8*jing;break;
case '9': lg=lg+9*jing;break;
case 'A': lg=lg+10*jing;break;
case 'B': lg=lg+11*jing;break;
case 'C': lg=lg+12*jing;break;
case 'D': lg=lg+13*jing;break;
case 'E': lg=lg+14*jing;break;
case 'F': lg=lg+15*jing;break;}
jing*=j; //位权升一级,为下次使用做好准备
}
return Long.toString(lg);
}//end String goto_10() method
//十进制转换成十辣进制
//-------------------------------------
public String goto10_16(String s)
//参数s: 是要转换的字符串,由于输入的控制,保证了字符串的合法性;
{ String str=s; //用来转换的字符串
String st=new String();//用来记录16进制值的字符串
long ch; //每次取余有的值
int k; //将每次取余有的值转换成整形,用来选择转换的16进制字符
long lg;//用来转换的10进制数
if(str.charAt(0)=='-') //如果有负号则出去负号
str=str.substring(1,str.length()-1);
if(str.indexOf('E')!= -1)//如果是科学计数值则出去小数点和E后面的数
str=str.charAt(0)+str.substring(2,str.indexOf('E'));
if (str.indexOf('.')!= -1)//如果有小数点则出去小数点及小数点后面的内容
str=str.substring(0,str.indexOf('.'));
lg=Long.parseLong(str);//将简化的字符串转化为长整形给lg
while (lg>=16)
{ ch=lg%16;
k=(int)ch;
switch (k)
{case 10: st="A"+st;break;
case 11: st="B"+st;break;
case 12: st="C"+st;break;
case 13: st="D"+st;break;
case 14: st="E"+st;break;
case 15: st="F"+st;break;
default: st=Long.toString(ch)+st;
}
lg=lg/16;
}
k=(int)lg;
switch (k)
{case 10: st="A"+st;break;
case 11: st="B"+st;break;
case 12: st="C"+st;break;
case 13: st="D"+st;break;
case 14: st="E"+st;break;
case 15: st="F"+st;break;
default: st=Long.toString(lg)+st;
}
return st;
}//end goto10_16() method
//-----------------------------------------------
//十进制转换成八进制?
public String goto10_8(String s)
//参数s: 是要转换的字符串,由于输入的控制,保证了字符串的合法性;
{ String str=s;
String st=new String();
long j=8,ch;
long lg;
if(str.charAt(0)=='-') //如果有负号则出去负号
str=str.substring(1,str.length()-1);
if(str.indexOf('E')!= -1)//如果是科学计数值则出去小数点和E后面的数
str=str.charAt(0)+str.substring(2,str.indexOf('E'));
if (str.indexOf('.')!= -1)//如果有小数点则出去小数点及小数点后面的内容
str=str.substring(0,str.indexOf('.'));
lg=Long.parseLong(str);
while (lg>=j)
{ ch=lg%j;
st=Long.toString(ch)+st;
lg=lg/j;
}
st=Long.toString(lg)+st;
return st;
上一页 [1] [2] [3] [4] [5] [6] [7] 下一页