题解 | #进制转换#

进制转换

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

import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.HashMap; import java.util.Map;

/**

  • 进制转换 / public class BtConversion { /*

    • 描述

    • 写出一个程序,接受一个十六进制的数,输出该数值的十进制表示。

    • 数据范围:保证结果在 1≤n≤2^(31−1)

    • 输入描述:

    • 输入一个十六进制的数值字符串。

    • 输出描述:

    • 输出该数值的十进制字符串。不同组的测试用例用\n隔开。

    • 示例1

    • 输入:0xAA

    • 输出:170 */ public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String str; StringBuilder sb = new StringBuilder(); while((str = br.readLine())!=null){ str = str.substring(2); for (int i = 0; i < str.length(); i++) { sb.append(sixTeenToTen(str.substring(i,i+1))); } int sum = 0; for (int i = sb.length() - 1, b = 0; i >= 0; i--, b++) { sum += Integer.parseInt(sb.substring(i, i + 1)) * Math.pow(2, b); }

       System.out.println(sum);
       System.out.println();
      

      }

    }

    public static String sixTeenToTen(String str){ Map<String,String> convMap = new HashMap<>(); convMap.put("0","0000"); convMap.put("1","0001"); convMap.put("2","0010"); convMap.put("3","0011"); convMap.put("4","0100"); convMap.put("5","0101"); convMap.put("6","0110"); convMap.put("7","0111"); convMap.put("8","1000"); convMap.put("9","1001"); convMap.put("A","1010"); convMap.put("B","1011"); convMap.put("C","1100"); convMap.put("D","1101"); convMap.put("E","1110"); convMap.put("F","1111"); convMap.put("a","1010"); convMap.put("b","1011"); convMap.put("c","1100"); convMap.put("d","1101"); convMap.put("e","1110"); convMap.put("f","1111"); return convMap.get(str); } }

全部评论

相关推荐

点赞 评论 收藏
分享
Southyeung:我说一下我的看法(有冒犯实属抱歉):(1)简历不太美观,给我一种看都不想看的感觉,感觉字体还是排版问题;(2)numpy就一个基础包,机器学习算法是什么鬼?我感觉你把svm那些写上去都要好一点。(2)课程不要写,没人看,换成获奖经历;(3)项目太少了,至少2-3个,是在不行把网上学习的也写上去。
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务