import java.util.Scanner;
public class H_to_B {
static void HtoB_fun(String n){
char[] ch=n.toCharArray();
char str;
String s="";
int p=0;
for(int i=0;i if(str>='0'&&str<='9'){ String st= Character.toString(str);//字符转字符串 p=Integer.valueOf(st).intValue();//字符串转整型 } else{ if(str=='A'){str=10;} if(str=='B'){str=11;} if(str=='C'){str=12;} if(str=='D'){str=13;} if(str=='E'){str=14;} if(str=='F'){str=15;} if(str=='.'){str=16;} p=(int)str; } switch (p){ case 0 : s+="0000"; break; case 1 : s+="0001"; break; case 2 : s+="0010"; break; case 3 : s+="0011"; break; case 4 : s+="0100"; break; case 5 : s+="0101"; break; case 6 : s+="0110"; break; case 7 : s+="0111"; break; case 8 : s+="1000"; break; case 9 : s+="1001"; break; case 10 : s+="1010"; break; case 11 : s+="1011"; break; case 12 : s+="1100"; break; case 13 : s+="1101"; break; case 14 : s+="1110"; break; case 15 : s+="1111"; break; case 16 : s+="."; break; default : System.out.println("error!"); break; } } System.out.println("结果为二进制:"); System.out.println(s); } public static void main(String[] args) { Scanner sc=new Scanner(System.in); System.out.println("请输入16进制数:"); String str=sc.nextLine(); HtoB_fun(str); } } //二进制数转十六进制数 import java.util.Scanner; public class B_to_H { static void BtoH_fun(String str){ String s=""; //s 用来接收每位十六进制数的位数 int chushihua=0;//判断是否有小数点 int west=0,wei=0;//小数点的位置 int c; char[] ch1=str.toCharArray(); for(int i=0;i chushihua=1; west=i; } } if(chushihua==1){ int jud=4-(west%4); int jud1=4-((str.length()-1-west)%4); if(jud!=0&&jud!=4){ for(int i=0;i if(jud1!=0&&jud1!=4){ for(int i=0;i wei=str.indexOf(".")+1; str=str.replace(".", ""); } if(chushihua==0){ int judge=4-(str.length()%4);//前面该补judge个0 if(judge!=0&&judge!=4){ //当str.length()%4为0时,judge为4,所以要加judge!=4这个条件 for(int i=1;i<=judge;i++){ str="0"+str; } } } char[] ch=str.toCharArray(); int[] a=new int[str.length()]; for(int i=0;i a[i]=Integer.valueOf(st).intValue(); //再把字符串转换为整型 //System.out.print(a[i]); //用来测试是否在前面补零 } for(int i=1;i<=str.length();i++){ if(i==wei&&wei!=0){s+=".";} if(i%4==0){ c=a[i-1]*1+a[i-2]*2+a[i-3]*4+a[i-4]*8; if(c<10){ int b=a[i-1]*1+a[i-2]*2+a[i-3]*4+a[i-4]*8; s+=b+""; } if(c>=10){ switch(c){ case 10 : s+="A"; break; case 11 : s+="B"; break; case 12 : s+="C"; break; case 13 : s+="D"; break; case 14 : s+="E"; break; case 15 : s+="F"; break; } } } } System.out.println("结果为十六进制数:"+s); } public static void main(String[] args) { long startTime = System.currentTimeMillis(); Scanner sc=new Scanner(System.in); System.out.println("请输入一串二进制数字:"); String str=sc.nextLine(); //String str="101001011011111101010001"; BtoH_fun(str); long endTime = System.currentTimeMillis(); long usedTime = endTime - startTime; System.out.println("程序执行所用时间:"+usedTime+" 毫秒!"); } }下载本文