-
- ну зачем сразу пилить! таблетку съешь само отвалится! достаточно написать функцию float f16to32(u16); и u16 f32to16(float); - IBAH(21.11.2017 20:55)
- А смысл? Сэкономить байты в массиве штоле? - SciFi(21.11.2017 20:57)
- Мне недавно крайне хотелось поиметь 24 бита на float (больше не надо, а памяти мало), но кейл такого не предоставил. А целочисленное оказалось по ряду причин не приемлемо. - POV_(21.11.2017 21:48, )
- За всю жизнь ни разу не испытывал потребности в float. Если u32 мало, то u64 уж точно на все случаи жизни хватает. - Ale3000(22.11.2017 06:38)
- Повезло тебе с динамическим диапазоном - Codavr(22.11.2017 09:07 - 09:10)
- А фиксированная точка почему не подошла? Удобно, просто. - Dingo(22.11.2017 05:16)
- Эти данные не только сливаются в "файл подкачки" на dataflash, они оттуда же выгребаются 10 раз в секунду для отрисовки на дисплее с масштабированием зависящим от калибровочных коэффциентов в плавкучке. Где-то да гемморные пересчеты все равно POV_(108 знак., 22.11.2017 12:22, )
- Удобно и просто становится когда ее запилишь под себя, а стандартная i64-математика для 8-разряднега мало чем отличается от float. - Petrovich(22.11.2017 10:19, )
- На днях закинул пилильщикам GCC от Арма: а не сделать ли нам double как float? Ради sprintf и вообще. Они говорят: сосите йух. - SciFi(21.11.2017 22:11)
- Ради одного sprintf ломать логику вменяемого компилятора - нафиг-нафиг. lloyd(116 знак., 21.11.2017 23:06)
- Нет там никакой ломки логики. Если повышенная точность не нужна, хорошо бы иметь возможность её отключить. К тому же стандарт языка Си не требует, чтобы float отличался от double в точности. SciFi(190 знак., 21.11.2017 23:17 - 22.11.2017 00:23)
- 1. У меня вот есть Cortex A8, у него тоже плавучка только одинарной точности. Но в проекте используются и float, и double (float-а не хватило, звиняйте). Я прокляну каждого баклана, что решит при переходе на новую версию компилятора сменить lloyd(113 знак., 22.11.2017 07:49, ссылка)
- Вы все какие-то упоротые. Не сменить точность типа, а добавить опцию. - SciFi(22.11.2017 08:52)
- Тоже напрягает что sprintf тянет даблы. Так и не нашел нормального легкого sprintf для float. Надо потом написать функцию только для форматирования float. - michas(22.11.2017 06:12)
- "При передаче аргументов в sprintf все float превращаются в double". Так что как минимум преобразование float<->double останется в любом случае. Кстати, printf из старенькой самбы вполне себе торт. - SciFi(22.11.2017 08:58, ссылка, ссылка)
- Ну если вызывать my_sprintf, то даблов не будет. - michas(22.11.2017 09:24)
- Даблы будут. Скажите спасибо пророкам Кернигану и Ричи. - SciFi(22.11.2017 09:26)
- Не пойму. Если я напишу свой принтф и буду передавать в него флоат, откуда там даблы прорастут? Кейл не цепляет даблы до того, как начинать передавать аргументом плавучку. - michas(22.11.2017 09:30)
- Мануалы надо читать хоть иногда. Функции с переменным числом параметров f(...), аргумент типа float автоматически приводится к double перед вызовом этой функции. - SciFi(22.11.2017 09:35)
- Понятно тогда в чем проблема. - michas(22.11.2017 10:26)
- Но ведь можно не выпендриваться и запилить код на С++ по подобию iostream с переопределением оператора << lloyd(60 знак., 22.11.2017 09:54)
- "Не выпендриваться... С++... переопределение". Оксюморон кокойты :-) - SciFi(22.11.2017 10:02)
- окай, оператор << можно заменить на набор си-шных функций lloyd(166 знак., 22.11.2017 10:50)
- "Не выпендриваться... С++... переопределение". Оксюморон кокойты :-) - SciFi(22.11.2017 10:02)
- Мануалы надо читать хоть иногда. Функции с переменным числом параметров f(...), аргумент типа float автоматически приводится к double перед вызовом этой функции. - SciFi(22.11.2017 09:35)
- Не пойму. Если я напишу свой принтф и буду передавать в него флоат, откуда там даблы прорастут? Кейл не цепляет даблы до того, как начинать передавать аргументом плавучку. - michas(22.11.2017 09:30)
- Даблы будут. Скажите спасибо пророкам Кернигану и Ричи. - SciFi(22.11.2017 09:26)
- Ну если вызывать my_sprintf, то даблов не будет. - michas(22.11.2017 09:24)
- "При передаче аргументов в sprintf все float превращаются в double". Так что как минимум преобразование float<->double останется в любом случае. Кстати, printf из старенькой самбы вполне себе торт. - SciFi(22.11.2017 08:58, ссылка, ссылка)
- 1. У меня вот есть Cortex A8, у него тоже плавучка только одинарной точности. Но в проекте используются и float, и double (float-а не хватило, звиняйте). Я прокляну каждого баклана, что решит при переходе на новую версию компилятора сменить lloyd(113 знак., 22.11.2017 07:49, ссылка)
- Нет там никакой ломки логики. Если повышенная точность не нужна, хорошо бы иметь возможность её отключить. К тому же стандарт языка Си не требует, чтобы float отличался от double в точности. SciFi(190 знак., 21.11.2017 23:17 - 22.11.2017 00:23)
- Надо видеть в этом плюс - ребята знают, видимо, толк в удовольствиях, плохого не советуют ) - POV_(21.11.2017 22:21, )
- Ради одного sprintf ломать логику вменяемого компилятора - нафиг-нафиг. lloyd(116 знак., 21.11.2017 23:06)
- За всю жизнь ни разу не испытывал потребности в float. Если u32 мало, то u64 уж точно на все случаи жизни хватает. - Ale3000(22.11.2017 06:38)
- Мне недавно крайне хотелось поиметь 24 бита на float (больше не надо, а памяти мало), но кейл такого не предоставил. А целочисленное оказалось по ряду причин не приемлемо. - POV_(21.11.2017 21:48, )
- А смысл? Сэкономить байты в массиве штоле? - SciFi(21.11.2017 20:57)
- ну зачем сразу пилить! таблетку съешь само отвалится! достаточно написать функцию float f16to32(u16); и u16 f32to16(float); - IBAH(21.11.2017 20:55)