package other;
import java.util.Scanner;
class Bintoother
{
int source;
Scanner sc=new Scanner(System.in);
/*
二进制转换为十进制
*/
public void bin_to_dec(){
System.out.println("请输入一个二进制数!");
source=sc.nextInt();
int temp=0,t=1;
while(source!=0){
temp=temp+(source % 10)*t;
t=t*2;
source=source/10;
}
System.out.println("转化为十进制的结果:"+temp);
}
public int bintodec(int s_number){
int temp=0,t=1;
while(s_number!=0){
temp=temp+(s_number % 10)*t;
t=t*2;
s_number=s_number/10;
}
return temp;
}
/*
十进制转换为二进制
*/
public void dec_to_bin(){
System.out.println("请输入一个十进制数!");
source=sc.nextInt();
String result="";
//调用系统方法
//result=Integer.toBinaryString(source);
//System.out.println("转化为二进制的结果:"+result);
//自己处理,除2求余法。
while(source!=0){
result=Integer.toString(source % 2)+result;
source=source/2;
}
System.out.println("转化为二进制的结果:"+result);
}
/*
二进制转换为八进制
*/
public void bin_to_oct(){
System.out.println("请输入一个二进制数!");
source=sc.nextInt();
int result=0;
int t=1;
while(source!=0){
result=result+bintodec(source % 1000)*t;
t=t*10;
source=source/1000;
}
System.out.println("转化为八进制的结果:"+result);
}
/*
二进制转换为十六进制
*/
public void bin_to_hex(){
System.out.println("请输入一个二进制数!");
source=sc.nextInt();
String hexString="0123456789ABCDEF";
String result="";
int t;
while(source!=0){
t=bintodec(source % 10000);
result=hexString.substring(t,t+1)+result;
source=source/10000;
}
System.out.println("转化为八进制的结果:"+result);
}
}
测试类
package other;
import java.util.Scanner;
public class Jz_test{
public static void main(String[] args) {
int choice;
Scanner sc = new Scanner(System.in);
Bintoother bto = new Bintoother();
while (true) {
System.out.println("1--二进制——>十进制");
System.out.println("2--十进制——>二进制");
System.out.println("3--二进制——>八进制");
System.out.println("4--二进制——>十六进制");
System.out.println("0--退出");
choice = sc.nextInt();
switch (choice) {
case 1:
bto.bin_to_dec();
break;
case 2:
bto.dec_to_bin();
break;
case 3:
bto.bin_to_oct();
break;
case 4:
bto.bin_to_hex();
break;
case 0:
System.exit(0);
break;
}
}
}
}