gpt4 book ai didi

java - 字符串十六进制到十进制整数/将正数转换为负数

转载 作者:行者123 更新时间:2023-11-30 07:03:28 26 4
gpt4 key购买 nike

我是一个编程新手,所以请保持友善:)我刚刚编写了一个将十六进制字符串转换为十进制整数的程序。我用“负”十六进制对其进行了测试,有些值是正确的,有些是错误的。我无法真正解决输出错误的问题。

这是我的代码:

    String abc = "0123456789ABCDEF";
String hexString = "-ffad";
int decResult = 0;
//int endRes = 0;

hexString = hexString.toUpperCase();

for(int i = 0; i < hexString.length(); i++)
{
if(hexString.contains("-"))
{
hexString = hexString.replace("-", "");
char res = hexString.charAt(i);
int d = abc.indexOf(res);
decResult = (16*decResult + d)*(-1);
}
else
{
char res = hexString.charAt(i);
int d = abc.indexOf(res);
decResult = ((16*decResult) + d)*1;
}
}
System.out.println(decResult);

最佳答案

既然你这样做了

if(hexString.contains("-"))

对于 hexString 字符串中的每个字符,转换的最终符号将计算为

  • 如果 hexString.length() 为奇数,则为负,
  • 否则为正。

改进的工作解决方案可以是:

    hexString = hexString.toUpperCase();
int sign = hexString.charAt(0) == '-' ? -1 : 1;
hexString = hexString.replace("-", "");
decResult = Integer.parseInt(hexString, 16) * sign;
System.out.println(decResult);

关于java - 字符串十六进制到十进制整数/将正数转换为负数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40503227/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com