您的位置:首页 > 编程语言 > Java开发

java中各种进制间的转换

2007-10-18 17:25 302 查看
十进制转换为二进制
public class A{
public static void main(String[] args){
//任意定义一个十进制数
int num = 100;
//定义一个数组用于存储值
int sub[] = new int[100];
//定义数组下标
int index = 0;
while(num!=0){
index++;
sub[index] = num %2;
num/=2;
}
for(int i=index;i>0;i--){
System.out.println(sub[i]);
}
}
}
//把十进制转换为八进制,十六进制方法类似,只需把基数2替换为8或
//当把十进制转换为十六进制进需要判断一下
//把十进制转换为十六进制
public static void main(String[] args){
//任意定义一个十进制数
int num = 100;
//定义一个数组用于存储值
int sub[] = new int[100];
//定义数组下标
int index = 0;
while(num!=0){
index++;
sub[index] = num %16;
num/=16;
}
for(int i=index;i>0;i--){
if(sub[i]>=10){
System.out.println(String.valueOf((char)(sub[i] +55)));
}else{
System.out.print(sub[i]);

}

}
}
}

//把二进制转换为十进制
public static void main(String[] args){
//任意定义一个二进制数
String str = "1100100";
//定义一个数组保存值
int sub[] = new int[100];
//定义数组下标的值
int index = 0;
//获取字符串长度
int len = str.length();
//定义相加的值
int sum=0;
for(int i=0;i<len;i++){
index++;
char ch = str.charAt(i);
int num = Integer.valueOf(String.valueOf(ch));
sub[index] = num;
}
for(int k=index;k>0;k--){
int w=1,s=1;
//取最后一种特殊情况
if(k == index){
s = sub[k]*1;
sum+=s;
}else{
for(int j=k;j<index;j++){
s = sub[k]*2;
w*=s;
}
sum+=w;
}
}
System.out.println(sum);
}
}
//把十六进制转换为十进制
public static void main(String[] args){
//任意定义一个十六进制数
String str = "64";
//定义一个数组保存值
int sub[] = new int[100];
//定义数组下标的值
int index = 0;
//获取字符串长度
int len = str.length();
//定义相加的值
int sum=0,su=0;
for(int i=0;i<len;i++){
index++;
char ch = str.charAt(i);
int num = (int)ch;
//判断是否有字母
if(num-55>=10){
num-=55;
sub[index] =num;
}else{
num = Integer.valueOf(String.valueOf(ch));
sub[index] = num;
}
}
for(int k=index;k>0;k--){
int w=1,s=1;
//判断特殊情况
if(k==index){
s = sub[k] *1;
sum+=s;
}else{
for(int j=k;j<index;j++){
s = 1*16;
w*=s;
}
su = sub[k] *w;
sum+=su;
}
}
System.out.println(sum);
}
}
//把八进制转换为十进制方法与二进制转换为十进制方法类似

//把二进制转换为十六进制
//可先把二进制转换为十进制在把十进制转换为十六进制(因为所用方法相同,不与代码了)

//类似把八进制转换为十六进制,二进制
//也可先把八进制转换为十进制,在把十进制转换为十六进或二进制

/*
以上代码都通过编译可以运行
如有什么不懂或好的方法请联系我,谢谢
联系方式:zytcainiao@163.com
*/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: