0
Answered
Отрицательное десятичное число в Javascript.
ai-systems@bk ru 11 years ago
in Tips and Tricks
•
updated by Aleksandr Romanov (CTO) 7 years ago •
3
Здравствуйте!
Есть вопрос по преобразованию типов.
По RS232 получаем значение температуры с датчика в формате T=XY.
XY это шестнадцатиричное представление температуры в грудусах цельсия.
Т.е например 26 градусов это 1А и.т.д.
Вот функция:
При положительных значениях - все выводится верно.
Но если вместо 1A (26) будет E6 (-26), функция возвращает 230.
Как получить правильные отрицательные значения?
Есть вопрос по преобразованию типов.
По RS232 получаем значение температуры с датчика в формате T=XY.
XY это шестнадцатиричное представление температуры в грудусах цельсия.
Т.е например 26 градусов это 1А и.т.д.
Вот функция:
llsTemphex = Data.charAt(9) + Data.charAt(10)<br>llsTemp = parseInt(llsTemphex, 16)<br>
При положительных значениях - все выводится верно.
Но если вместо 1A (26) будет E6 (-26), функция возвращает 230.
Как получить правильные отрицательные значения?
Customer support service by UserEcho
В 16-ой системе счисления, отрицательные числа записываются особым способом.
Скорее всего под положительные числа выделен определенный диапазон значений, от минимально до максимального. И для отрицательных точно также.
Получите от датчика значение температуры -1 в 16-ом виде, преобразуйте в 10-ую, и оно скорее всего будет больше всех положительных значений, запишите его в условие и сравнивайте.
llsTemphex = Data.charAt(9) + Data.charAt(10)
llsTemp = parseInt(llsTemphex, 16)
if(llsTemp > Температура_Минус_Один_в_Десятичной)
llsTemp = - (parseInt(llsTemphex, 16) - Лишние_значения);
// - (230 - 224) = -26