NuageL 2022-10-10 12:24 采纳率: 16.7%
浏览 15

十六进制转十进制的方法哪里错了?

这个把十六进制转十进制的方法哪里错了?是Math.pow这里吗?(输入AB8C测试得到269964.0)

import java.util.Locale;
import java.util.Scanner;

public class Hex2Decimal {
public static void main(String[] args){
Scanner sc=new Scanner(System.in);
char[] hex=sc.nextLine().toUpperCase(Locale.ROOT).toCharArray();
int exp=hex.length;
double decimal=0;
for (int i=0;i<exp;i++){
char M=hex[exp-1-i];
System.out.println("M="+M);
boolean b = M >= 'A' && M <= 'F';
if(M>'A'&&M<'F'){
M=(char)(M+10-'A');
// System.out.println("M="+M);
}
decimal=decimal+M*Math.pow(16,i);

        System.out.println("decimal="+decimal);
    }
    System.out.println(decimal);
}

}

  • 写回答

2条回答 默认 最新

  • 快乐鹦鹉 2022-10-10 12:41
    关注

    你只是将A-F转换为数值,但'0'到'9'同样要转换为对应的数值啊
    if(M>='A'&&M<='F'){
    M=(char)(M+10-'A');
    // System.out.println("M="+M);
    }
    else
    M = (char)(M-'0');

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 10月10日

悬赏问题

  • ¥50 求大神教题,这个代码和讲解思路都怎么写呀,完全卡住了
  • ¥15 python随机森林对两个excel表格读取,shap报错
  • ¥15 基于STM32心率血氧监测(OLED显示)相关代码运行成功后烧录成功OLED显示屏不显示的原因是什么
  • ¥100 X轴为分离变量(因子变量),如何控制X轴每个分类变量的长度。
  • ¥30 求给定范围的全体素数p的(p-2)/p的连乘积值
  • ¥15 VFP如何使用阿里TTS实现文字转语音?
  • ¥100 需要跳转番茄畅听app的adb命令
  • ¥50 寻找一位有逆向游戏盾sdk 应用程序经验的技术
  • ¥15 请问有用MZmine处理 “Waters SYNAPT G2-Si QTOF质谱仪在MSE模式下采集的非靶向数据” 的分析教程吗
  • ¥15 adb push异常 adb: error: 1409-byte write failed: Invalid argument