-
- А почему не структура,? - LordN(22.05.2015 09:36)
- Всегда так делаю. Sprint и прочее говно на микрашах - от лукавого. - Звероящер(22.05.2015 08:11)
- Ну тоже Чингачгуки в засаде сидят. - Олдфаг(21.05.2015 18:13, )
- Более кошерно, как мне кажется, юнион {float;int32} И Передавать в RS побайтно (int32>>24),(int32>>16),(int32>>8),(int32>>0). А на том конце собирать байты в int32, каждый раз кроме последнего после приема сдвигать <<= 8. Тог Олдфаг(176 знак., 21.05.2015 20:22, )
- ну ващета можно {float;char[4]} - danuna(22.05.2015 18:38)
- Да можно и вообще без пользовательских типов примерно так: rs232 = *(uint8_t*)(& flot + 0); rs232 = *(uint8_t*)(& flot + 1); rs232 = *(uint8_t*)(& flot + 2); rs232 = *(uint8_t*)(& flot + 3); Но есть более кошерные способы. - Олдфаг(22.05.2015 19:00, )
- да можно ваще в машинных кодах индусить, чо уж там. или scanf printf для особо одаренных - на тиньках самое то. - danuna(22.05.2015 22:05)
- Ну, это одного поля ягоды с union{float,char[]} - Олдфаг(22.05.2015 22:42, )
- тема переходит в философию. с моей точки зрения чем короче код - тем меньше шанс сделать в нем ошибку. коль пользуемся 8-ми битным регистром ком-порта то и данные выравнивать надо на 8 бит - danuna(22.05.2015 23:24)
- Код не длинный. "Да будет свет". "Плодитесь и размножайтесь". Дьявол в деталях, как обычно. - SciFi(22.05.2015 23:27)
- у соседа всегда длиннее. - danuna(22.05.2015 23:33)
- Код не длинный. "Да будет свет". "Плодитесь и размножайтесь". Дьявол в деталях, как обычно. - SciFi(22.05.2015 23:27)
- А я давно заметил: ежели структуры, сдвиги или объединения, то сразу живой резонанс. Скучно,
господапосоны. - SciFi(22.05.2015 23:18)- Можно расширить списочек. Водка, бабы, укропы, либероиды, структуры, сдвиги и объединения. И уже веселее) - Олдфаг(22.05.2015 23:30, )
- ща генерал на особо одаренных скрипача натгавит. - danuna(22.05.2015 23:37)
- Можно расширить списочек. Водка, бабы, укропы, либероиды, структуры, сдвиги и объединения. И уже веселее) - Олдфаг(22.05.2015 23:30, )
- тема переходит в философию. с моей точки зрения чем короче код - тем меньше шанс сделать в нем ошибку. коль пользуемся 8-ми битным регистром ком-порта то и данные выравнивать надо на 8 бит - danuna(22.05.2015 23:24)
- Ну, это одного поля ягоды с union{float,char[]} - Олдфаг(22.05.2015 22:42, )
- да можно ваще в машинных кодах индусить, чо уж там. или scanf printf для особо одаренных - на тиньках самое то. - danuna(22.05.2015 22:05)
- Да можно и вообще без пользовательских типов примерно так: rs232 = *(uint8_t*)(& flot + 0); rs232 = *(uint8_t*)(& flot + 1); rs232 = *(uint8_t*)(& flot + 2); rs232 = *(uint8_t*)(& flot + 3); Но есть более кошерные способы. - Олдфаг(22.05.2015 19:00, )
- вики вещает, что таки существовали демонические машины, имеющие разных индейцев для флоатов и для интов. а также вещает, что стандарт IEEE754 не пишет про индейцев - Mahagam(21.05.2015 23:22)
- Может быть и не IEEE754... - fk0(22.05.2015 00:16)
- Даже если нет IEEE754, есть frexp(), ldexp(): SciFi(202 знак., 22.05.2015 09:27)
- и кому оно нужно, такое всё из себя нестандартное? особенно если это всего лишь float. Mahagam(225 знак., 22.05.2015 00:55)
- А кому он нужен IEEE, если у нас нет матпроцессора с готовой его реализацией, а софтовая реализация быстрей и проще без IEEE (на конкретной платформе). И вопрос нужно задавать не "нахуя делать", а "есть ли у нас документ _гарантирующий_ fk0(55 знак., 22.05.2015 08:04)
- вопрос "накуя делать" даёт ответ о целесообразности реализации нестандартного решения. только полный еблан сделает в софте обычный сишный флоат несовместимым с IEEE754. менять что-то там внутри флоата - существенного смысла не найти, зато потеря Mahagam(397 знак., 22.05.2015 09:42 - 09:51)
- Разумеется наш любимый микрочип! И смысл очень большой. Там плавучка достаточно быстрая, в отличии от IEEE. - fk0(22.05.2015 09:50)
- да, когда ваял в 1998 на PIC14000 с плавучкой помню что у микрочипа было ассорти примеров где два чуть разных формата плавучки жили... щаз сваять обработку с плавучкой на МК с ОЗУ в 192 байта я бы за дикость посчитал, ан до сих пор приборы basilmak(12 знак., 22.05.2015 19:29)
- Насколько я помню (PIC14000 мне дали в 1996 г.) Формат там был все-таки один, который более подходит для реализации на 8-разрядных процессорах. Но за основу был взят формат IEEE. - Bill(25.05.2015 08:52, ссылка)
- Речь про конкретные реализации, а не аппноты. В hitech-C sizeof(float)==3. Какой там IEEE? - fk0(25.05.2015 09:32)
- Насколько я помню (PIC14000 мне дали в 1996 г.) Формат там был все-таки один, который более подходит для реализации на 8-разрядных процессорах. Но за основу был взят формат IEEE. - Bill(25.05.2015 08:52, ссылка)
- я для них слоган придумал: "Ошибайтесь быстро!" Mahagam(121 знак., 22.05.2015 10:13, ссылка)
- Ну начинается... Просто в тебе говорит зависть. - SciFi(22.05.2015 10:17)
- к чему зависть? - Mahagam(22.05.2015 10:24)
- Ну начинается... Просто в тебе говорит зависть. - SciFi(22.05.2015 10:17)
- да, когда ваял в 1998 на PIC14000 с плавучкой помню что у микрочипа было ассорти примеров где два чуть разных формата плавучки жили... щаз сваять обработку с плавучкой на МК с ОЗУ в 192 байта я бы за дикость посчитал, ан до сих пор приборы basilmak(12 знак., 22.05.2015 19:29)
- Разумеется наш любимый микрочип! И смысл очень большой. Там плавучка достаточно быстрая, в отличии от IEEE. - fk0(22.05.2015 09:50)
- "Окончательная бумажка. Фактическая! Настоящая! Броня!" © - SciFi(22.05.2015 09:09, youtube)
- вопрос "накуя делать" даёт ответ о целесообразности реализации нестандартного решения. только полный еблан сделает в софте обычный сишный флоат несовместимым с IEEE754. менять что-то там внутри флоата - существенного смысла не найти, зато потеря Mahagam(397 знак., 22.05.2015 09:42 - 09:51)
- А кому он нужен IEEE, если у нас нет матпроцессора с готовой его реализацией, а софтовая реализация быстрей и проще без IEEE (на конкретной платформе). И вопрос нужно задавать не "нахуя делать", а "есть ли у нас документ _гарантирующий_ fk0(55 знак., 22.05.2015 08:04)
- Потому что float это не регулярное 4-хбайтовое число как uint32, а совокупность разных полей. Отсюда и неупоминание индейцев как таковых. Однако стркутура float обозначена, и знаковый бит размещен в 31(старшем) разряде, что позволяет нам, грешным, Олдфаг(179 знак., 21.05.2015 23:54, )
- Может быть и не IEEE754... - fk0(22.05.2015 00:16)
- ну ващета можно {float;char[4]} - danuna(22.05.2015 18:38)
- Более кошерно, как мне кажется, юнион {float;int32} И Передавать в RS побайтно (int32>>24),(int32>>16),(int32>>8),(int32>>0). А на том конце собирать байты в int32, каждый раз кроме последнего после приема сдвигать <<= 8. Тог Олдфаг(176 знак., 21.05.2015 20:22, )