Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.12.2024, 20:24   #1
Nester
Форумчанин
 
Аватар для Nester
 
Регистрация: 22.10.2008
Сообщений: 127
По умолчанию Single to 2 Word

Подскажите пожалуйста
как переменную типа Single
разложить на две переменные типа Word ?
Никто не знает больше чем не знаю я
Nester вне форума Ответить с цитированием
Старый 02.12.2024, 00:22   #2
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,429
По умолчанию

А чем не подошел вариант из прошлой темы?
Код:
u_tag = packed record
  case Integer of
    0: (w: Array[0..1] Of Word);
    1: (fval: Single);
end;
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 02.12.2024, 01:55   #3
northener
ПШП
Участник клуба
 
Регистрация: 15.07.2013
Сообщений: 1,926
По умолчанию

BDA Спасибо за поправленный код.
northener вне форума Ответить с цитированием
Старый 02.12.2024, 06:29   #4
Nester
Форумчанин
 
Аватар для Nester
 
Регистрация: 22.10.2008
Сообщений: 127
По умолчанию

Цитата:
Сообщение от BDA Посмотреть сообщение
А чем не подошел вариант из прошлой темы?
Код:
u_tag = packed record
  case Integer of
    0: (w: Array[0..1] Of Word);
    1: (fval: Single);
end;
Я не понимаю как с этим работать. Если Вас не затруднит напишите пожалуйста пример.
Никто не знает больше чем не знаю я
Nester вне форума Ответить с цитированием
Старый 02.12.2024, 06:45   #5
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,429
По умолчанию

Вот пример - https://programmersforum.ru/showpost...9&postcount=10.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 02.12.2024, 12:03   #6
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,705
По умолчанию

А смысл в таком преобразовании? Разве что побитно изучить - как выглядит короткое float. Потому что иначе применить полученное преобразование никак не получится. Или это - учебный пример? Ну тогда и не такое можно встретить...
digitalis вне форума Ответить с цитированием
Старый 02.12.2024, 12:04   #7
Nester
Форумчанин
 
Аватар для Nester
 
Регистрация: 22.10.2008
Сообщений: 127
По умолчанию

Цитата:
Сообщение от BDA Посмотреть сообщение
Спасибо большое !
Никто не знает больше чем не знаю я
Nester вне форума Ответить с цитированием
Старый 02.12.2024, 12:14   #8
Nester
Форумчанин
 
Аватар для Nester
 
Регистрация: 22.10.2008
Сообщений: 127
По умолчанию

Цитата:
Сообщение от digitalis Посмотреть сообщение
А смысл в таком преобразовании? Разве что побитно изучить - как выглядит короткое float. Потому что иначе применить полученное преобразование никак не получится. Или это - учебный пример? Ну тогда и не такое можно встретить...
Представьте себе что 4 байта типа Float получены через порт от контроллера НО чередование байтов не соответствует типу Float. Нужно к примеру поменять местами 1-2 и 3-4 байты.
Для этого и разбираем на Bytes и собираем как нам нужно для корректного получения значения Float.
Никто не знает больше чем не знаю я
Nester вне форума Ответить с цитированием
Старый 03.12.2024, 01:27   #9
northener
ПШП
Участник клуба
 
Регистрация: 15.07.2013
Сообщений: 1,926
По умолчанию

Цитата:
Сообщение от Nester Посмотреть сообщение
Представьте себе что 4 байта типа Float получены через порт от контроллера
Чисто из любопытства. А контроллер шлет в своей посылке только эти 4 байта? Или посылка содержит ещё что-то? Если да, то у вас есть ещё возможность понять богатый цимус Паскалевского/Дельфийского типа record при приеме данный из компорта.

Последний раз редактировалось northener; 03.12.2024 в 02:35.
northener вне форума Ответить с цитированием
Старый 03.12.2024, 17:05   #10
hexor_boo
Разъяснятор
Форумчанин
 
Аватар для hexor_boo
 
Регистрация: 21.04.2022
Сообщений: 142
По умолчанию

Цитата:
Сообщение от BDA Посмотреть сообщение
А чем не подошел вариант из прошлой темы?
Код:
u_tag = packed record
  case Integer of
    0: (w: Array[0..1] Of Word);
    1: (fval: Single);
end;
https://programmersforum.ru/showpost...9&postcount=10
А в этом примере - нужно "packed record" или достаточно просто "record", как там написано?

В целом - респект! Раньше не использовал packed record, но штука полезная!
hexor_boo вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Округлить single nXs Общие вопросы Delphi 4 01.03.2012 11:59
что такое single Shinobig Общие вопросы C/C++ 12 22.01.2012 21:36
HEX переводим в Single Yrok Общие вопросы Delphi 6 04.03.2009 17:00
Single to String? Blondinka Общие вопросы Delphi 7 24.09.2007 17:36