华为笔试:进制转换

来源:互联网 发布:sai绘图软件中文版 编辑:程序博客网 时间:2024/05/22 07:07

华为笔试:进制转换

题目大意:

写出一个程序,接受一个十六进制的数值字符串,输出该数值的十进制字符串。(多组同时输入 )

输入描述:
输入一个十六进制的数值字符串。

输出描述:
输出该数值的十进制字符串。

输入例子1:
0xA

输出例子1:
10

思路:

考察位运算,按位转换即可

import java.util.*;public class Main {    public static void main(String[] args) {        Scanner sc = new Scanner(System.in);        while(sc.hasNext()) {            String line = sc.nextLine();            int len = line.length();            long result = 0;            for(int i = 2; i < len; i++) {                char c = line.charAt(i);                int j = 0;                if(c >= 'A' && c <= 'F') {                    j = 10 + (c - 'A');                }else if(c >= '0' && c <= '9'){                    j = c - '0';                }                result |= (j << (len - 1 - i) * 4);            }            System.out.println(result);        }        sc.close();    }}

注:学渣心里苦,不要学楼主,平时不努力,考试二百五,哭~

这里写图片描述