12-битное дополнение шестнадцатеричного числа до 2 (0DE и EDA) ⇐ 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 соответственно. Я пробовал читать разные сообщения, но все, что меня смущает, это результат. Может ли кто-нибудь помочь мне найти реальный ответ?
Я работаю над датчиком давления 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 соответственно. Я пробовал читать разные сообщения, но все, что меня смущает, это результат. Может ли кто-нибудь помочь мне найти реальный ответ?
Мобильная версия