如何在c#中检测负十六进制值?

本文关键字:十六进制 检测 | 更新日期: 2023-09-27 17:49:15

我正在研究温度传感器的驱动程序。这些值以十六进制形式出现,它们的存储方式如下:

string tempHex = "08C5"; //-> Would be 22,45°C

问题是,传感器也可以注意到负值,我不知道如何在c#中检测2的补体。

也许你能帮助我。谢谢你!

如何在c#中检测负十六进制值?

static public double Temp(string hex)
{
    return Convert.ToInt16(hex,16)*0.01;
}

从0000到7FFF的值为正,8000到FFFF的值为负。幸运的是,Convert.ToInt16()为您完成了这一切,因为这正是所有现代计算机内部存储数字的方式。你只需要乘以0.01就可以得到摄氏温度

一个简单的转换就可以了,它和实现2的补码一样复杂。例如:

static bool isPositive(string hex)
{
    return Convert.ToInt16(hex, 16)>0;
}