华为校招上机编程之‘‘十六进制转十进制’’
2017-07-04 15:45
337 查看
时间限制:1秒 空间限制:32768K 热度指数:87114
本题知识点: 字符串
算法知识视频讲解
写出一个程序,接受一个十六进制的数值字符串,输出该数值的十进制字符串。(多组同时输入 )
输入描述:
输入一个十六进制的数值字符串。
输出描述:
输出该数值的十进制字符串。
示例1
第二种方法是按部就班转换,其中-55,和-48,请参照数字和大写字母的ASCII。
所有程序都在java 1.7下通过
本题知识点: 字符串
算法知识视频讲解
题目描述
写出一个程序,接受一个十六进制的数值字符串,输出该数值的十进制字符串。(多组同时输入 )输入描述:
输入一个十六进制的数值字符串。
输出描述:
输出该数值的十进制字符串。
示例1
输入
0xA
输出
10
import java.util.Scanner; import java.util.*; /*public class Main{ public static void main(String args[]) { Scanner sc = new Scanner(System.in); String str = null; while(sc.hasNext()) { str = sc.nextLine().substring(2); System.out.println(Integer.parseInt(str,16)); } } }*/ public class Main{ public static void main(String args[]) { Scanner sc = new Scanner(System.in); while(sc.hasNext()) {StringBuffer sb = new StringBuffer(); int sum = 0; sb.append(sc.next()); String str = sb.reverse().substring(0,sb.length()-2); char ch[] = str.toCharArray(); for(int i =0;i<ch.length;i++) { if(ch[i]>='A'&&ch[i]<='F') { sum+=(Integer.valueOf(ch[i])-55)*Math.pow(16,i); } else { sum+=(Integer.valueOf(ch[i])-48)*Math.pow(16,i); } } System.out.println(sum); } } }注释部分是第一种方法,该方法直接调用java的API;
第二种方法是按部就班转换,其中-55,和-48,请参照数字和大写字母的ASCII。
所有程序都在java 1.7下通过
相关文章推荐
- 2015华为校招上机考试编程Java
- 华为校招上机编程之““字符串的分割””
- 2014年华为校招成渝地区上机试题
- 【华为上机试题C++】老师想知道从某某同学当中,分数最高的是多少,现在请你编程模拟老师的询问。当然,老师有时候需要更新某位同学的成绩.
- 华为2017年8月30日校招编程真题01-数字的中文拼音和英文单词之间互相转换
- 华为校招软件上机考试题目解析
- 华为软件校园招聘编程上机题目1
- 华为2013校招之哈工大威海 上机试题之一:报数问题:设有N 个人围坐一圈并按顺时针方向从1 到N 编号,从第S个人开始进行1 到M报数,报 数到第 M个人时,此人出圈,再从他的下一个人重新开始1 到 M的报数,如此进行下去直 到所有的人都出圈为止。现要打印出出圈次序。
- 华为软件校园招聘编程上机题目(2)
- 华为校招上机笔试试题(A卷)——java实现
- 2015年校招--华为上机笔试题--大数相乘
- 华为2017年8月30日校招编程真题2-自定义的26进制和十进制之间互相转换
- 2012华为校招上机一道----字符串分离
- 2015年校招--华为上机笔试题--去重复单词
- 华为校招一道上机题:等式变换
- 2016华为校招上机笔试练习题
- 华为上机-要求编程实现上述高精度的十进制加法。要求实现函数: void add (const char *num1, const char *num2, char *result)
- 华为软件校园招聘编程上机题目(1)
- 华为上机编程之计算字符串最后一个单词的长度,单词以空格隔开
- 华为上机编程之字符串中含有该字符的个数