基于Java的16进制数与2进制数互相转化方法.docx
- 文档编号:30481627
- 上传时间:2023-08-15
- 格式:DOCX
- 页数:8
- 大小:21.18KB
基于Java的16进制数与2进制数互相转化方法.docx
《基于Java的16进制数与2进制数互相转化方法.docx》由会员分享,可在线阅读,更多相关《基于Java的16进制数与2进制数互相转化方法.docx(8页珍藏版)》请在冰豆网上搜索。
基于Java的16进制数与2进制数互相转化方法
基于Java的16进制数与2进制数互相转化方法
//十六进制数转二进制数
importjava.util.Scanner;
publicclassH_to_B{
staticvoidHtoB_fun(Stringn){
char[]ch=n.toCharArray();
charstr;
Strings="";
intp=0;
for(inti=0;i str=ch[i]; if(str>='0'&&str<='9'){ Stringst=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){ case0: s+="0000"; break; case1: s+="0001"; break; case2: s+="0010"; break; case3: s+="0011"; break; case4: s+="0100"; break; case5: s+="0101"; break; case6: s+="0110"; break; case7: s+="0111"; break; case8: s+="1000"; break; case9: s+="1001"; break; case10: s+="1010"; break; case11: s+="1011"; break; case12: s+="1100"; break; case13: s+="1101"; break; case14: s+="1110"; break; case15: s+="1111"; break; case16: s+="."; break; default: System.out.println("error! "); break; } } System.out.println("结果为二进制: "); System.out.println(s); } publicstaticvoidmain(String[]args){ Scannersc=newScanner(System.in); System.out.println("请输入16进制数: "); Stringstr=sc.nextLine(); HtoB_fun(str); } } //二进制数转十六进制数 importjava.util.Scanner; publicclassB_to_H{ staticvoidBtoH_fun(Stringstr){ Strings="";//s用来接收每位十六进制数的位数 intchushihua=0;//判断是否有小数点 intwest=0,wei=0;//小数点的位置 intc; char[]ch1=str.toCharArray(); for(inti=0;i if(ch1[i]=='.'){ chushihua=1; west=i; } } if(chushihua==1){ intjud=4-(west%4); intjud1=4-((str.length()-1-west)%4); if(jud! =0&&jud! =4){ for(inti=0;i } if(jud1! =0&&jud1! =4){ for(inti=0;i } wei=str.indexOf(".")+1; str=str.replace(".",""); } if(chushihua==0){ intjudge=4-(str.length()%4);//前面该补judge个0 if(judge! =0&&judge! =4){//当str.length()%4为0时,judge为4,所以要加judge! =4这个条件 for(inti=1;i<=judge;i++){ str="0"+str; } } } char[]ch=str.toCharArray(); int[]a=newint[str.length()]; for(inti=0;i Stringst=Character.toString(ch[i]);//把字符转换为字符串 a[i]=Integer.valueOf(st).intValue();//再把字符串转换为整型 //System.out.print(a[i]);//用来测试是否在前面补零 } for(inti=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){ intb=a[i-1]*1+a[i-2]*2+a[i-3]*4+a[i-4]*8; s+=b+""; } } System.out.println("结果为十六进制数: "+s); } publicstaticvoidmain(String[]args){ longstartTime=System.currentTimeMillis(); Scannersc=newScanner(System.in); System.out.println("请输入一串二进制数字: "); Stringstr=sc.nextLine(); //Stringstr="101001011011111101010001"; BtoH_fun(str); longendTime=System.currentTimeMillis(); longusedTime=endTime-startTime; System.out.println("程序执行所用时间: "+usedTime+"毫秒! "); } }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 Java 16 进制数 互相 转化 方法