十六进制转十进制

【问题描述】

从键盘输入一个不超过8位的正的十六进制数字符串,将它转换为正的十进制数后输出。

注:十六进制数中的10~15分别用大写的英文字母A、B、C、D、E、F表示。

样例输入

FFFF

样例输出

65535

锦囊1】

16进制展开。

【锦囊2】

按数位依次操作,每次将前面的乘16,再加上当前数位的值。 

 

代码:

package 蓝桥;

import java.util.Scanner;

public class 十六进制转十进制 {

public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner scan=new Scanner(System.in);
String str=scan.next();
int[] num=new int[str.length()];
//将每一位的16进制数转为10进制
for(int i=0;i<str.length();i++) {
num[i]=change(str.charAt(i));
}
//每一位的元素乘以它的权相加
int sum=0;
for(int i=0;i<num.length;i++) {
sum+=Math.pow(16,num.length-1-i)*num[i];
}
System.out.println(sum);
}
public static int change(char c) {
if(c=='A') {
return 10;
}
else if(c=='B') {
return 11;
}
else if(c=='C') {
return 12;
}
else if(c=='D') {
return 13;
}
else if(c=='E') {
return 14;
}else if(c=='F') {
return 15;
}
else {
return Integer.parseInt(c+"");
}
}
}

转载于:https://www.cnblogs.com/henuLiGang/p/8395361.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值