Java编程题:将一个十六进制的字符串转换成一个十进制的整数

来源:互联网 发布:js正则匹配引号 编辑:程序博客网 时间:2024/06/13 04:05

思路:

1.将字符串转换成一个一个的字符

2.将字符转换成十六进制的数字

3.计算出结果

package test;public class Test {public static void main(String[] args) {String str = "13abf";int len = str.length();int sum = 0;for(int i=0;i<len;i++){/* * charAt 官方文档上是说返回指定索引处的char值, * 实际上就是将字符串转换成一个一个的字符 */char c = str.charAt(len-1-i);/* * digit 官方文档上是说返回使用指定基数的字符c的数值, * 实际上和Integer.parseInt(c,radix)是一个道理, * 就是将你指定进制的这个字符c转换成一个整数 */int n = Character.digit(c,16);/* * 这就相当于1*16^4+3*16^3+... * <<:高位去除,地位补0 * a<<b在数据不溢出的情况下相当于a*2^b */sum += n * (1<<(4*i));}System.out.println(sum);//利用Integer类的静态方法可以直接得到结果//System.out.println(Integer.parseInt(str, 16));//System.out.println(Integer.valueOf(str, 16));}}



原创粉丝点击