Да, по этому для передачи по сети целочисленную переменную нужно разбить на две части (старшую и младшую) и поместить в две сетевые переменные с соседними номерами
Захват-2.png
Последний раз редактировалось petera; 06.11.2019 в 12:23.
Мой канал на ютубе
https://www.youtube.com/c/ПетрАртюков
Мой канал на РУТУБЕ
https://rutube.ru/channel/23641433/
Библиотека ГМ для СП300
https://disk.yandex.com/d/gHLMhLi8x1_HBg
Здравия всем! Как в ОЛ прочитать текущий день недели? Переменной нет в списке сервисных, но в тоже время по модбас она доступна. Разработчики случайно пропустили или так задумано?
Макрос от AI!
Захват-1.png
Мой канал на ютубе
https://www.youtube.com/c/ПетрАртюков
Мой канал на РУТУБЕ
https://rutube.ru/channel/23641433/
Библиотека ГМ для СП300
https://disk.yandex.com/d/gHLMhLi8x1_HBg
Здравствуйте!
Стало необходимо вывести на экран ПР200 отрицательное целое число, и вот незадача...
Помню еще со времен программирования на ассемблере для ZX Spectrum-а:
- тип int от -32768 до +32768 (Word)
- тип uint от 0 до 65535 (Word)
Везде в языках программирования и в классическом понимании тип int это знаковое целое число.
Почему здесь оно только положительное беззнаковое? При всем том, что в том же OwenCloud есть int16, uint16...
Основной конечно вопрос как вывести на экран ПР200 отрицательное целое число - естественно без дробной части.
Для начала определитесь где Вы возьмете это отрицательное целое число
Варианты
а) - в сетевой переменной от внешнего устройства
б) - в результате вычислений
вариант а) предполагает диапазон от -32768 до -32767
вариант б) предполагает диапазон от -2147483648 до 2147483647
В обоих случаях отрицательные значения будут представлены в дополнительном коде
в программе определяете знак и модуль(абсолютное значение) числа, для а) нужен макрос для 16 битных чисел, для б) - для 32 битных
На экране - составной элемент битовое поле (+/-) рядом поле для вывода числа (int)
ЗЫ.
Макросы
Абсолютное значение 32битных чисел + знак
Захват-3.png
Абсолютное значение 16битных чисел + знак
Захват-2.png
Экран
Захват-4.png
Результат работы
Захват-1.png
Последний раз редактировалось petera; 21.11.2019 в 12:39.
Мой канал на ютубе
https://www.youtube.com/c/ПетрАртюков
Мой канал на РУТУБЕ
https://rutube.ru/channel/23641433/
Библиотека ГМ для СП300
https://disk.yandex.com/d/gHLMhLi8x1_HBg
... Большое спасибо!
Честно говоря удивлен такой сложностью при вроде самой простой задаче...
Еще можно преобразовать int в float
Пару элементов к макросам ABS()
16 бит
Захват-2.png
32 бита
Захват-3.png
Тогда на экран можно вывести число с плавающей точкой, там "-" автоматический
Захват-5.png
Захват-4.png
Результат
Захват-1.png
Однако на экране нельзя вывести float без точки, минимум один знак после запятой, придется замазывать (по верх накладывать 2 пробела)
Да float имеет ограниченную точность и как следствие меньший диапазон представления целых чисел - максимум 7 знаков.
ЗЫ.
Сложностей нет, сделай/позаимствуй себе всяких макросов и затем просто применяй их. Получается расширение возможностей среды разработки.Честно говоря удивлен такой сложностью при вроде самой простой задаче...
Последний раз редактировалось petera; 21.11.2019 в 13:44.
Мой канал на ютубе
https://www.youtube.com/c/ПетрАртюков
Мой канал на РУТУБЕ
https://rutube.ru/channel/23641433/
Библиотека ГМ для СП300
https://disk.yandex.com/d/gHLMhLi8x1_HBg
Обычно так и делаю.
Может подскажете как лучше вывести на экран редактируемое целое отрицательное цисло? Если выводить float с замазкой, то пользователь, нажимая "SEL", не видит мигающих замазанных знаков после запятой и, соответственно, ничего не понимает
Если выводить int и отельно знак, то знак оказывается оторванным от числа, тем дальше оторванным, чем меньше разрядов у числа...