java通过16进制转10进制的算法实现

进制转换

http://www.nowcoder.com/questionTerminal/8f3df50d2b9043208c5eed283d1d4da6

import java.util.Scanner;


public class Main{

    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        while(sc.hasNext()){
            String str = sc.nextLine();
            String num = str.substring(2,str.length());
            int result = 0;
            int power = 1;
            for(int i = num.length() - 1; i >= 0; i--){
                char c = num.charAt(i);
                if(c >= '0' && c <= '9'){
                    result += (c - '0') * power;
                }else if (c >= 'A' && c <= 'F'){
                    result += (c - 'A' + 10) * power;
                }
                power *= 16;
            }
            System.out.println(result);
        }
        sc.close();
    }
}
全部评论
这才是正解,调用API的真是流氓
4 回复 分享
发布于 2021-05-05 10:18
大小写也要判断吧
点赞 回复 分享
发布于 2020-12-19 10:57
import java.io.*; import java.util.*; public class Main{ public static void main(String[] args){ Scanner sc = new Scanner(System.in); while(sc.hasNext()){ String str = sc.nextLine(); str=str.substring(2); int res=0; for(int i = str.length()-1;i>=0;i--){ char c = str.charAt(i); if(c>='0' && c<='9'){ res *= 16; res += c-'0'; }else if(c>='A'&&c<='F'){ res *= 16; res += c-'A'+10; }else if(c>='a' && c<='f'){ res *= 16; res += c-'a'+10; }else{ System.out.println(res); } } System.out.println(res); } } }
点赞 回复 分享
发布于 2021-07-05 09:38
我也是这个思路,可不知道为什么就是通过不了,大佬能帮忙看看嘛/
点赞 回复 分享
发布于 2021-07-05 09:38
记得判断a到f
点赞 回复 分享
发布于 03-26 03:46 江苏

相关推荐

美丽的查理斯不讲武德:包kpi的啊,感觉虾皮一点hc都没有
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
11-26 15:46
已编辑
字节国际 电商后端 24k-35k
点赞 评论 收藏
分享
评论
25
20
分享
牛客网
牛客企业服务