java 二进制转换为十六进制有什么错误,要怎么改正,求高手指教

importjava.util.*;publicclassertoh{privatestaticinth1=0;publicstaticvoidmain(String[]... import java.util.*;
public class ertoh {
private static int h1 = 0;
public static void main(String[] args){
Scanner input =new Scanner(System.in);
System.out .print("请输入一个二进制数:");
String b=input.nextLine();
System.out .print("二进制转换为十六进制为:");
dtoh(b);
}
public static void dtoh(String s){
for(int i=0;i<s.length();i++){
char [][]bin=new char[s.length()/4][4];
bin[(i+1)%4][i]=s.charAt(i);
if((i+1)%3==0)
h1=(int)bin[(i+1)%4][0]+(int)bin[(i+1)%4][1]*2+(int)bin[(i+1)%4][2]*2*2+(int)bin[(i+1)%4][3]*2*2*2;
}
if(h1>=0&&h1<=9)
System.out.print("h1");
else
switch(h1){
case 10:System.out.print("A");
case 11:System.out.print("B");
case 12:System.out.print("C");
case 13:System.out.print("D");
case 14:System.out.print("E");
case 15:System.out.print("F");
}
}
}
展开
 我来答
紫薇参星
科技发烧友

推荐于2016-05-21 · 有一些普通的科技小锦囊
知道大有可为答主
回答量:5983
采纳率:92%
帮助的人:3656万
展开全部

你的程序我帮你改完了,你看看吧.

import java.util.*;
public class ertoh {
    private static  int h1 = 0;
 public static void main(String[] args){
     Scanner input =new Scanner(System.in);
     System.out .print("请输入一个二进制数:(左侧位数不足四位的请用零补齐)");
     String b=input.nextLine();
     System.out .print("二进制转换为十六进制为:");
     dtoh(b);
    }
    public static void dtoh(String s){
     char [][]bin=new char[s.length()/4][4];
     for(int i=0;i<s.length();i++){
      bin[i/4][i%4]=s.charAt(i);
      if((i+1)%4==0){
          h1=Integer.parseInt(bin[i/4][0]+"")*2*2*2+Integer.parseInt(bin[i/4][1]+"")*2*2+Integer.parseInt(bin[i/4][2]+"")*2+Integer.parseInt(bin[i/4][3]+"");
          if(h1>=0 && h1<=9)
           System.out.print(h1);
          else
           switch(h1){
           case 10:System.out.print("A");break; 
           case 11:System.out.print("B");break;
           case 12:System.out.print("C");break;
           case 13:System.out.print("D");break;
           case 14:System.out.print("E");break;
           case 15:System.out.print("F");break;
           }  
       }
     }
    } 
}

运行结果:

请输入一个二进制数:(左侧位数不足四位的请用零补齐)010010100111
二进制转换为十六进制为:4A7

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式