gpt4 book ai didi

c# - 在 C# 中从十六进制到整数的错误转换

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

问题的原因可能是什么?我的方法返回不正确的 int 值。当我给它十六进制值 AB 或 DC 或类似的东西时,它返回 int = 0 但当我给它一个十六进制 = 22 时,它返回我 int = 22。(尽管在这种情况下 int 应该是 34)。

public int StatusBit(int Xx, int Rr)  {
int Number;
int.TryParse(GetX(Xx,Rr), out Number);
return Number;
}

我尝试使用 Number = Convert.ToInt32(GetX(Xx,Rr));但它给出相同的结果,但对于包含字母的任何内容,结果为 null 而不是 0。

最佳答案

改为使用 Convert.ToInt32(string, int)。这样你就可以给出一个应该解释数字的基础。例如

return Convert.ToInt32(GetX(Xx, Rr), 16);

(您也不检查 TryParse 的返回值,这会提示解析失败。)

如果您需要十进制和十六进制数字,您需要根据数字的外观进行分支,并使用基数 10 或基数 16。例如如果您的十六进制数字始终以 0x 开头,您可以使用以下几行内容:

string temp = GetX(Xx, Rr);
return Convert.ToInt32(temp, temp.StartsWith("0x") ? 16 : 10);

但这取决于您如何(如果有的话)区分两者。如果一切都是十六进制的,那么当然就没有这样的需要了。

关于c# - 在 C# 中从十六进制到整数的错误转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15225334/

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