gpt4 book ai didi

c# - 如何将格式 00-00 的十六进制转换为 double ?

转载 作者:太空宇宙 更新时间:2023-11-03 23:18:47 29 4
gpt4 key购买 nike

我正在获取格式为 00-C6(十六进制)的值。当我尝试将其转换为 double (格式执行)时它会提示。怎么办?

    public void check()
{
double low;
double high;
percentageCalculator(4095, 5, out low, out high);
Dictionary[] A_1 = {Max_1, Min_1};

for (int i = 0; i < A_1.Length; i++)
{
if ((Convert.ToDouble(A_1[i].CurrentValue) <= low) || ((Convert.ToDouble(A_1[i].CurrentValue) >= high))
{
Fault++;
}
}
}

最佳答案

假设 Hex 00-C6 string 表示 Integer 值(因为如果它表示 floating -point值,如floatdouble,必须由4-byte8-byte组成>),那么处理它的一种方法是拆分 Hex string:

string hexString = "00-C6";
string[] hexes = hexString.Split('-');

然后像这样处理 hexes 中的每个元素:

int hex0 = Convert.ToInt32(hexes[0], 16);
int hex1 = Convert.ToInt32(hexes[1], 16);

如果十六进制是小端,那么你的double 值将是:

double d = hex0 << 8 + hex1;

如果它是 big endtion,你的 double 将是:

double d = hex1 << 8 + hex0;

这里的关键是要知道您可以使用 Convert.ToInt32 和第二个参数作为 16 将十六进制字符串表示形式转换为 Int

如果您愿意,可以将上述所有步骤合并为一个衬里。为了表述清晰,我特意将它们分解。

关于c# - 如何将格式 00-00 的十六进制转换为 double ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36196409/

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