Приведение символов со знаком вручную

Я работаю с некоторым встроенным оборудованием, Rabbit SBC, которое использует Dynamic C 9.

Я использую микроконтроллер для чтения информации с цифрового датчика компаса через один из его последовательных портов.

Датчик отправляет значения в микроконтроллер с использованием одного байта со знаком.(От -85 до 85)

Когда я получаю эти данные, я помещаю их в переменную char

Это отлично работает для положительных значений, но когда датчик начинает отправлять отрицательные значения, чтение переходит к 255, а затем возвращается к 0. Я предполагаю, что это связано с тем, что последний бит используется для определения отрицательного / положительного значения и искажает реальные значения.

Моей первоначальной мыслью было изменить тип данных на знаковый символ .

Однако моя проблема заключается в том, что версия Dynamic C на микроконтроллере, который я использую, изначально не поддерживает подписанные значения char, а только беззнаковые.

Интересно, есть ли способ вручную преобразовать данные, которые я получаю, в знаковое значение?

7
задан Mat 29 December 2011 в 12:00
поделиться