Страница 2 из 4 ПерваяПервая 1234 ПоследняяПоследняя
Показано с 11 по 20 из 35

Тема: Как посчитать остаток от деления числа с плавающей запитой?

  1. #11
    Пользователь Аватар для petera
    Регистрация
    06.05.2011
    Адрес
    Минск
    Сообщений
    3,841

    По умолчанию

    Цитата Сообщение от ProRus Посмотреть сообщение
    Здравствуйте!

    Есть число более 10 знаков (Целочисленный тип не подходит).
    Значит использую тип с плавающей запятой.

    Мне необходимо узнать последние четыре знака перед запятой.
    Подскажите как это сделать?

    Например в python это выглядит так (значение % 10000).
    Как реализовать в Owen Logic?
    Не дурите голову, в ОЛ используется Float (IEEE754)
    Для таких чисел точность 6..7 цифр, и даже не после запятой, а ВСЕГО - 6..7 цифр!

    О каких более 10 знаков может идти речь?

    ЗЫ.
    Для тех, кто в танке...
    Float (IEEE754).
    Для мантиссы отводится всего 23 бита из 32. В стандарте IEEE 754 несколько значений данного типа зарезервировано для обеспечения возможности представления специальных значений. К ним относятся значения NaN (Not a Number, «не число») и +/-INF (Infinity, бесконечность), получающихся в результате операций деления на ноль или при превышении числового диапазона. Также сюда попадают денормализованные числа, у которых мантисса меньше единицы.

    Захват-01.png
    Последний раз редактировалось petera; 07.10.2022 в 14:29.
    Мой канал на ютубе
    https://www.youtube.com/c/ПетрАртюков
    Библиотека ГМ для СП300
    https://disk.yandex.com/d/gHLMhLi8x1_HBg

  2. #12

    По умолчанию

    Цитата Сообщение от ProRus Посмотреть сообщение
    Идея была следующей.
    Хотел передавать через сетевую переменную (для экономии переменных) длинное число и вычленять из него необходимые данные, записывая в переменные. Возможно подскажите другой вариант?
    Например:
    ccmmssddmmyyyytthhll
    cc - время
    mm - месяц
    ss - секунды
    dd - день
    mm - месяц
    yyyy - год
    tt - температура
    hh - влажность
    ll - освещенность
    А мастером кто будет?

  3. #13
    Пользователь
    Регистрация
    31.01.2015
    Адрес
    Новосибирск
    Сообщений
    87

    По умолчанию

    Ох, точно.
    Мастер не сможет передать такое число.
    Запарился, бывает.
    Значит вопрос сам собою отпал.

  4. #14
    Пользователь Аватар для petera
    Регистрация
    06.05.2011
    Адрес
    Минск
    Сообщений
    3,841

    По умолчанию

    Цитата Сообщение от ProRus Посмотреть сообщение
    Идея была следующей.
    Хотел передавать через сетевую переменную (для экономии переменных) длинное число и вычленять из него необходимые данные, записывая в переменные. Возможно подскажите другой вариант?
    Например:
    ccmmssddmmyyyytthhll
    cc - время
    mm - месяц
    ss - секунды
    dd - день
    mm - месяц
    yyyy - год
    tt - температура
    hh - влажность
    ll - освещенность
    Для упаковки ccmmssddmmyyyy в одну переменную не нужно изобретать велосипед - есть стандартное представление UNIX time (число секунд с 0 часов 1 января 1970г)
    Макросы для работы с UNIX time - https://owen.ru/forum/showthread.php...l=1#post219991

    ЗЫ
    tthhll - легко упаковываются во вторую переменную
    Последний раз редактировалось petera; 07.10.2022 в 14:49.
    Мой канал на ютубе
    https://www.youtube.com/c/ПетрАртюков
    Библиотека ГМ для СП300
    https://disk.yandex.com/d/gHLMhLi8x1_HBg

  5. #15

    По умолчанию

    Цитата Сообщение от ProRus Посмотреть сообщение
    Ох, точно.
    Мастер не сможет передать такое число.
    Запарился, бывает.
    Значит вопрос сам собою отпал.
    Осталось только дать пример, ув. petera все остальное уже сказал...
    пример.jpg

  6. #16
    Пользователь
    Регистрация
    31.01.2015
    Адрес
    Новосибирск
    Сообщений
    87

    По умолчанию

    Цитата Сообщение от petera Посмотреть сообщение
    Для упаковки ccmmssddmmyyyy в одну переменную не нужно изобретать велосипед - есть стандартное представление UNIX time (число секунд с 0 часов 1 января 1970г)
    Макросы для работы с UNIX time - https://owen.ru/forum/showthread.php...l=1#post219991

    ЗЫ
    tthhll - легко упаковываются во вторую переменную
    Спасибо!
    Посмотрю в эту сторону.

  7. #17
    Пользователь
    Регистрация
    31.01.2015
    Адрес
    Новосибирск
    Сообщений
    87

    По умолчанию

    Цитата Сообщение от Godlike_S Посмотреть сообщение
    Осталось только дать пример, ув. petera все остальное уже сказал...
    пример.jpg
    Спасибо за пример!

  8. #18
    Пользователь Аватар для Сергей0308
    Регистрация
    25.06.2011
    Адрес
    Галактика Андромеды (M31)
    Сообщений
    8,244

    По умолчанию

    Многократно подобные вопросы по плотной упаковке переменных рассматривались на форуме, откуда такое абсолютное непонимание процесса берётся просто не нахожу разумного объяснения!
    Например имеется две целочисленные переменные диапазона 0-255, каждая занимает по 8 бит, можно упаковать в одну переменную и передать одним регистром!
    Кроме того, в зависимости от необходимой точности, можно и сам диапазон сжать!
    Надеюсь, доходчиво написал?!

    Упаковка-распаковка_6_2.PNG

    Кроме того обсуждали вопрос как одним регистром(16 бит) передавать по сети до 128 переменных, это когда спешить некуда, в смысле период обновления не критичен(может занимать несколько секунд)!
    Последний раз редактировалось Сергей0308; 07.10.2022 в 17:26.
    Если проблему можно решить за деньги, это не проблема, это расходы. Бог каждому посылает проблемы по его силам. Так что одно из двух. Либо ты можешь-таки
    справиться с проблемами, либо это не твои проблемы.

  9. #19
    Пользователь
    Регистрация
    23.09.2008
    Адрес
    Центророссийск
    Сообщений
    2,250

    По умолчанию

    А какая цель этого кроилова? Надо jpeg-фотку сжать, а то ПР долго ее передает?

  10. #20
    Пользователь Аватар для Сергей0308
    Регистрация
    25.06.2011
    Адрес
    Галактика Андромеды (M31)
    Сообщений
    8,244

    По умолчанию

    Цитата Сообщение от Валенок Посмотреть сообщение
    А какая цель этого кроилова? Надо jpeg-фотку сжать, а то ПР долго ее передает?
    Я же уже в какой-то теме объяснял, из-за ограниченности(нехватки) ресурсов, например одна булева переменная занимает один байт, если их собрать в одну целочисленную переменную потребуется в 8 раз меньше энергонезависимой памяти или в 8 раз больше таких переменных сможем использовать! Аналогично и с сетевыми переменными их количество в режиме слейв ограничено(64 штуки).

    Упаковка-распаковка булевых переменных_2.PNG
    Последний раз редактировалось Сергей0308; 07.10.2022 в 18:26.
    Если проблему можно решить за деньги, это не проблема, это расходы. Бог каждому посылает проблемы по его силам. Так что одно из двух. Либо ты можешь-таки
    справиться с проблемами, либо это не твои проблемы.

Страница 2 из 4 ПерваяПервая 1234 ПоследняяПоследняя

Похожие темы

  1. Ответов: 4
    Последнее сообщение: 25.10.2019, 11:07
  2. Ответов: 1
    Последнее сообщение: 04.09.2019, 09:04
  3. Ответов: 2
    Последнее сообщение: 21.10.2018, 14:05
  4. Чем посчитать обороты двигателя?
    от bestbat в разделе Подбор Оборудования
    Ответов: 12
    Последнее сообщение: 11.01.2018, 11:34
  5. ТРМ138 и Modbus RTU и числа с плавающей запятой
    от Dinf в разделе Помощь Разработчикам
    Ответов: 2
    Последнее сообщение: 10.06.2013, 13:18

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •