项目要求:打印菜单项,让用户输入对应的字母(不区分大小写),则选择了相应的进制转换
接下来接受用户的输入,验证用户输入的合法性,合法则进行进制转换,输出结果
分析:进制转换分为X->十进制 十进制->X进制
X->十进制 :按权展开,权用在原进制基的上标,即几个原进制基相乘再乘以系数
十进制->X进制:除基取余,除以要转换的目标进制的基,倒序取余,直到商为0
2、8、16进制之间的转换,先转换成十进制再转换成目标进制
涉及到一些知识点;原进制转换到目标进制的基数在哪里都需要用到,使用全局变量
整型转字符,输出字符则输出的是字符本身
字符转整型,输出整型则输出字符的ASCII值
判断字符的范围是否在数字字符(0-9)的方法:
str.charAt(i) >= '0' && str.charAt(i) < ‘9’
如果是判断是否在0-9中的某个字符之间的方法是:
int from= 2; char ch = (char) from; 此时ch的值进行运算的值是原原本本的2
而 char ch1= ‘2’ 此时ch1进行运算的值是字符‘2’的ASCII值50
所以用ch+'0'来表示经过转换成的字符的ASCII值
字符转数字核心:字符在进行运算时是用ASCII值进行操作,看原数字(ASCII值)和目标数字的差距
比如让A->10 B->11 C->12 D->13 则通用方法‘char’- 55即可
Java代码:
static int from;//原进制的基
static int to;//目标进制的基
while (true ) {
String str = "";
Scanner scan = new Scanner(System.in);
while (true) {
showMeua();
System.out.println("请选择对应选项");
str = scan.next();
if(str .equals("M") ) {