题解 | #进制转换#

package 华为.字符串;

import java.util.Scanner;

public class 进制转换 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while(sc.hasNext()){
//输入16进制的字符串
String s = sc.nextLine();
//输入十进制结果
System.out.println(convert(s));
}
}

private static int convert(String s) {
    int len = s.length();
    int index = 0;
    int sum = 0;
    char[] chs = s.toCharArray();
    for (int i = len-1; i >= 2; i--) {
        char ch = chs[i];
        sum = (int) (sum + Math.pow(16, index)*switchTen(ch));
        index += 1;
    }
    return sum;
}

private static int switchTen(char ch) {
    switch (ch) {
    case '0':
        return 0;
    case '1':
        return 1;
    case '2':
        return 2;
    case '3':
        return 3;
    case '4':
        return 4;
    case '5':
        return 5;
    case '6':
        return 6;
    case '7':
        return 7;
    case '8':
        return 8;
    case '9':
        return 9;
    case 'A':
        return 10;
    case 'B':
        return 11;
    case 'C':
        return 12;
    case 'D':
        return 13;
    case 'E':
        return 14;
    case 'F':
        return 15;
    default:
        break;
    }
    return -1;
}

}

全部评论

相关推荐

不愿透露姓名的神秘牛友
11-26 15:46
已编辑
字节国际 电商后端 24k-35k
点赞 评论 收藏
分享
ArisRobert:统一解释一下,第4点的意思是,公司按需通知员工,没被通知到的员工是没法去上班的,所以只要没被通知到,就自动离职。就是一种比较抽象的裁员。
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务