温度转换 - 2的补码 - 13位

时间:2012-08-28 04:16:32

标签: c# temperature

我没有时间尝试将下面的表转换为c#中的有价物。

我有一个2字节的数组,如

byte[] data = new byte[2];

data [ 0 ] = 0x00;
data [ 1 ] = 0xc9;

有没有方法可以将下面的图表转换为c#方法?

格式适用于DS2438智能电池监控IC - http://datasheets.maxim-ic.com/en/ds/DS2438.pdf

注意:底部3位始终为0,因此不应该是公式的一部分并排除。

将该值乘以0.03125以产生最终温度。

所以这个例子就是0xc900,相当于-1760或-1760 * 0.03125 = -55C

enter image description here

感谢任何帮助。

1 个答案:

答案 0 :(得分:5)

看起来只是(float)(sbyte)data[1] + (float)data[0] / 256

它不是重要它是13位而不是16位;因为达拉斯的位移使得一个漂亮的8.8定点表示。如果您的传感器具有更高的分辨率,那么将使用那些低位,但数学仍然完全相同。