欢迎来到天天文库
浏览记录
ID:23967169
大小:27.00 KB
页数:4页
时间:2018-11-12
《输入数,使十进制转换成二进制、八进制、十六进制》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、源程序publicstaticvoidmain(Stringargs[]){System.out.println("请输入要转换的进制(2,8,16),其他数字表示退出");Scannerreader=newScanner(System.in);inta=reader.nextInt();System.out.println("请输入要转换的10进制数:");intb=reader.nextInt();intd=b;Stacks=newStack();Stackc=newStac
2、k();if(a!=2&&a!=8&&a!=16){System.out.println("退出");}else{if(a==2
3、
4、a==8){while(b!=0){s.push(b%a);b=b/a;}}else{while(b!=0){if(b%a>9){if(b%a-9==1)c.push("a");if(b%a-9==2)c.push("b");if(b%a-9==3)c.push("c");if(b%a-9==4)c.push("d");if(b%a-9==5)c.push("e");if(b%a-9=
5、=6)c.push("f");}else{c.push(b%a+"");}b=b/a;}}}System.out.println(d+"的"+a+"进制为:");while(!s.isEmpty()){System.out.print(s.pop());}while(!c.isEmpty()){System.out.print(c.pop());}}测试数据:21024结果:请输入要转换的进制(2,8,16),其他数字表示退出2请输入要转换的10进制数:10241024的2进制为:10000000000测试数据:8255结果:请输
6、入要转换的进制(2,8,16),其他数字表示退出8请输入要转换的10进制数:255255的8进制为:377测试数据:161023结果:请输入要转换的进制(2,8,16),其他数字表示退出16请输入要转换的10进制数:10231023的16进制为:3ff调试过程:因为十六进制需要a,b,c,d,e,f等字母入栈,所以先考虑二进制和八进制,声明一个integer类型的栈,将余数入栈。对于十六进制,重新声明一个string类型的栈,判断余数的大小,如果大于9,则10为a,11为b……然后出栈。
此文档下载收益归作者所有