12-битное дополнение шестнадцатеричного числа до 2 (0DE и EDA)C++

Программы на C++. Форум разработчиков
Ответить
Гость
 12-битное дополнение шестнадцатеричного числа до 2 (0DE и EDA)

Сообщение Гость »


Я работаю над датчиком давления DPS310, используя STM32F042F4P6, в котором для калибровки температуры необходимо считывать температурный коэффициент (который находится в 12-битном дополнении до двух), я успешно прочитал оба коэффициента c0: 0DE и c1: EDA. (См. стр. 14 технического описания DPS310) Техническое описание

Теперь мне нужно взять дополнение до 2 для дальнейших вычислений, при преобразовании возникает масса беспорядка, т. е. если я конвертирую c0 в двоичный формат и беру дополнение до 2 вручную, ответ будет около 3874 (десятичные числа), но поскольку 1 полубайт все 0, если я пренебрегаю этим, я получаю 34 (десятичные числа). Хотя преобразование его с разных веб-сайтов дает разные ответы, я тоже пробовал ИИ, но это только ухудшило ситуацию. Если я преобразую 0DE в десятичное число и возьму дополнение до 2, ответ будет другим, если я сделаю это непосредственно из шестнадцатеричного числа, ответ будет другим. Я знал концепцию дополнения до 2, но не уверен, какое значение принять во внимание.

(0DE)h = (0000 1101 1110)2 ==> (1111 0010 0010)2 = (3874)10

но ниже я прикрепил скриншот различных преобразований:

Веб-сайт: Изображение здесь результат равен (0010 0010)2 = (34)10

ChatGPT: Изображение здесь он дал мне два ответа (1422)10 и (454)10

ИИ Bing: Изображение Это дало ответ как (598)10

Бард (Google AI): Изображение Что дало мне (-1224)10

Я почти уверен в прочитанном шестнадцатеричном значении коэффициентов c0 и c1, я проверил с помощью библиотеки по умолчанию Arduino, там также шестнадцатеричное значение было 0DE и EDA соответственно, но там было их дополнение до двух равны (222)10 и (-294)10 соответственно. Я пробовал читать разные сообщения, но все, что меня смущает, это результат. Может ли кто-нибудь помочь мне найти реальный ответ?
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»