Size: a a a

2021 May 18

EK

Eugene Krasnikov (ᴊɪ... in pro.asm
Попробуй так:

float char_to_float(char const* s)
{
 // First part (before 'e')
 int x = 0, n = 0;
 bool neg = false;
 if (*s == '-') { neg = true; s++; }
 else if (*s == '+') { s++; }
 x = (*s++ - '0');
 s++;  // skip point
 while (*s != 'e') {
   x *= 10;
   x += (*s++ - '0');
   ++n;
 }
 *s++;  // skip 'e'
 if (neg) { x = - x; }

 // Second part (after 'e')
 int e = 0;
 neg = (*s++ == '-');  // sign is always present
 e = (s[0]*10 + s[1]) - ('0'*10+'0');
/* если могут быть не только 2 цифры экспоненты (тогда предыдущую строку 'e=...' закомментировать, а while раскомментировать)
 while (*s) {
   e *= 10;
   e += (*s++ - '0');
 }
*/
 if (neg) { e = - e; }
 e -= n;
 if (e < 0) {
   neg = true;
   e = - e;
 }

 // Calc 10^e
 float p = 1, z = neg ? 0.1f : 10.f;
 while (e) {
   if (e & 1) { p *= z; }
   z *= z;
   e >>= 1;
 }

 return x * p;
}

#include <iostream>
#include <iomanip>

int main()
{
 std::cout << std::setprecision(10) << char_to_float("-1.2345678e+02") << std::endl;
 return 0;
}
источник

EK

Eugene Krasnikov (ᴊɪ... in pro.asm
Лол! Я вообще думал, мы в другом чате общаемся 🤣
источник

ВХ

Віталій Халак... in pro.asm
// Calc 10^e
 float p = 1, z = neg ? 0.1f : 10.f;
 while (e) {
   if (e & 1) { p *= z; }
   z *= z;
   e >>= 1;
 }

вот это я искал. сейчас пробую.

да, я тоже к тому другому чату больше привык.
источник

EK

Eugene Krasnikov (ᴊɪ... in pro.asm
Я не про "тот другой чат" (если речь о флейм-чате, меня там нет).
источник

EK

Eugene Krasnikov (ᴊɪ... in pro.asm
источник

ВХ

Віталій Халак... in pro.asm
источник

K

Kitsu in pro.asm
fprintf оч дорогой, а он там в цикле аж 3 раза дёргается
источник

K

Kitsu in pro.asm
Парсинг флоатов тут наименьшая из проблем
источник

ВХ

Віталій Халак... in pro.asm
он там раз на 2 гигабайта срабатывает
источник

ИП

Ипупуйе Плутин... in pro.asm
Страшное название у файла...
источник

ВХ

Віталій Халак... in pro.asm
было 49 сек - стало 48
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮b... in pro.asm
чем мой вариант не подошел? или с ним тоже заморочки?
источник

ВХ

Віталій Халак... in pro.asm
чет потерял. уже голова кипит. много вариантов.
источник

ИП

Ипупуйе Плутин... in pro.asm
Забавно. Открыл «тот» чат, а там сразу оффтоп! xD
источник

ВХ

Віталій Халак... in pro.asm
а... gas синтаксис.
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮b... in pro.asm
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮b... in pro.asm
это старые сообщения видимо, ты давно туда заглядывал. подожди обновления сообщений
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮b... in pro.asm
тебе остается перевести своемвещесвеное в сжатое bcd и загнать в fpu. какие там правила первода вещественных в bsd  я не знаю
источник

ВХ

Віталій Халак... in pro.asm
о. попробую.
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮b... in pro.asm
советую чтото похожее поискать в simd, будет еще быстрей. но может и нет там такого
источник