如何在c#中检测负十六进制值?
本文关键字:十六进制 检测 | 更新日期: 2023-09-27 17:49:15
我正在研究温度传感器的驱动程序。这些值以十六进制形式出现,它们的存储方式如下:
string tempHex = "08C5"; //-> Would be 22,45°C
问题是,传感器也可以注意到负值,我不知道如何在c#中检测2的补体。
也许你能帮助我。谢谢你!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;
}