Тема / Topic: Проблема с типом данных SINT в связке Экран-Программа
Alexander_
Forum Member / Участник форума
Участник № / Member № 7778
отправлено / posted
Здравствуйте. Наткнулся на пренеприятнейшую проблему. При связи каналов вызова программы и экрана через аргументы типов SINT экран некорректно воспринимает отрицательные значения. Опытным путём выявлена следующая картина: __________________________________________________________________ ______Тип данных___ | в программе|в экране|Результат|_Пример_ |__Комментарий ========= |====== |======= |========|====================== 1. Программа шлет значения в экран ___SINT___ |__SINT__|__НЕТ___|-1 -> 255 | ПОЧЕМУ?! ___SINT___ |__ INT __|__НЕТ___|-1 -> 255 | Положим, неявное преобразование типов здесь не работает: на выходе 8-разрядный допкод от -1 ___ INT ___ |__ INT __|__ ДА___| -1 -> -1 | Как и должно быть ___ INT ___ |__SINT__|__НЕТ___|-1 -> 255 | Положим, неявное преобразование типов здесь не работает : на выходе допкод от -1, усеченный до 8 разрядов 2. Экран тянет значения из программы ___SINT___ |__SINT__|__НЕТ___|-1 -> 255 | ПОЧЕМУ?! ___SINT___ |__ INT __|__НЕТ___|-1 -> 255 | Положим, неявное преобразование типов здесь не работает: на выходе 8-разрядный допкод от -1 ___ INT ___ |__ INT __|__ ДА___| -1 -> -1 | Как и должно быть ___ INT ___ |__SINT__|__ ДА___| -1 -> -1 | А вот это интересно! ______________________________________________________________________________________
При этом неотрицательные значения воспринимаются нормально. Испытывалась одна и та же программа на языке Техно ST, и она действительно выдавала минус единицу, в этом можно не сомневаться. Прошу дать комментарии.
Сообщения / Posts 33 | Из / From: Россия
| IP / IP: IP адрес / IP address |