Как определить отрицательные значения Hex в С#?
Я работаю над драйвером для датчика температуры.
Значения поступают в шестнадцатеричной форме и сохраняются как:
string tempHex = "08C5"; //-> Would be 22,45°C
Проблема заключается в том, что датчик также может заметить отрицательные значения, и я не знаю, как я могу обнаружить 2 дополнения в С#.
Может быть, ты поможешь мне.
Спасибо!
Ответы
Ответ 1
static public double Temp(string hex)
{
return Convert.ToInt16(hex,16)*0.01;
}
Значения от 0000 до 7FFF будут положительными, 8000 - FFFF будет отрицательным. К счастью, Convert.ToInt16()
делает это все для вас, так как это точно, как номера хранятся на всех современных компьютерах. Вам просто нужно несколько на 0,01 для получения Цельсия.
Ответ 2
Простой convert будет делать, это так же сложно, как реализация 2 дополнения imho.
Например:
static bool isPositive(string hex)
{
return Convert.ToInt16(hex, 16)>0;
}