Перейти к содержанию
    

Как преобразовать число в строку на Си для ARM ?

9 minutes ago, andrew_b said:

От использования snprintf никакого вреда кроме пользы.

Букв больше. Так-то я согласен, что с учетом средней квалификации писателей, соотношение польза-вред будет выше для snprintf.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

16 минут назад, novikovfb сказал:

itoa

$ man itoa
Нет справочной страницы для itoa
$

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

4 hours ago, andrew_b said:

 


$ man itoa
Нет справочной страницы для itoa
$

 

 

 

itoa не является частью стандартной библиотеки Си.

Но исходники этой функции вполне доступны в сети.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

22 minutes ago, dimka76 said:

itoa не является частью стандартной библиотеки Си.

да, нестандартное расширение stdlib.h - стандартной библиотеки :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

sprintf монструозная функция жрущая ресурсы и время которого у нас не так чтобы валом. никогда ее не использовал. только itoa.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

на просторах есть xprintf и производные - без плавучки и монструозности с ней связанной

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

"Монструозность" функций семейства printf может волновать только в совсем уж low-end сегменте МК. В большинстве случаев нет нужды изобретать велосипед.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 hour ago, toweroff said:

на просторах есть xprintf и производные - без плавучки и монструозности с ней связанной

xprintf конечно получше. но все равно по времени исполнения мне не подходит.

1 hour ago, aaarrr said:

"Монструозность" функций семейства printf может волновать только в совсем уж low-end сегменте МК. В большинстве случаев нет нужды изобретать велосипед.

в этом то и фишка. на дешевом камне испольнить нипадецки.

Изменено пользователем jenya7

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

и какое отношение имеет этот учебник к вопросу ТС о преобразовании типов в Си, вот уж действительно "в огороде бузина у Киеву дядька"


Внимательно вглядевшись в пост ТСа, вы не смогли бы не заметить, что ему надо не преобразовать типы (приведение? ага, три раза), а надо число в строку "превратить", и посоветованная "бузина из огорода" до тла на пальцах поясняет и это, и некоторые смежные моменты...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

13 hours ago, jenya7 said:

sprintf монструозная функция жрущая ресурсы и время которого у нас не так чтобы валом. никогда ее не использовал. только itoa.

Мне кажется, что это скорее заученное со времен AVR заклинание, чем результат серьезных измерений.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

15 hours ago, Aleksandr Baranov said:

Мне кажется, что это скорее заученное со времен AVR заклинание, чем результат серьезных измерений. 

Я некоторое время назад портировал на STM32,  почти 20 лет назад написанное еще для PIC16, включая обработку команд с терминала.

Так позаменял все рукописные функции обработки строк на стандартные - там оно было сильно избыточно и много места занимало, а тут - все ОК.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

То есть, потратить 2 минуты на создание itoa вместо использрвания библиотечной функции требует 2 страницы обсуждения ?

Полный пип.ц

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 часа назад, x893 сказал:

То есть, потратить 2 минуты на создание itoa вместо использрвания библиотечной функции требует 2 страницы обсуждения ?

Да нормально, многие и не догадываются что надо прибавить 0х30 к числу чтобы превратить его в соответствующий символ.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

18 минут назад, HardEgor сказал:

Да нормально, многие и не догадываются что надо прибавить 0х30 к числу чтобы превратить его в соответствующий символ.

Вы не поверите, но еще больше людей не знают, что прибавлять надо '0', т.е. символьный литерал ноля. Да, он имеет шестнадцатиричный код 0x30, но тем не менее запись

symbol = number + '0';

а еще лучше 

symbol = '0' + number;

гораздо более наглядна, чем прибавление какого-то магического числа.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

29 minutes ago, HardEgor said:

Да нормально, многие и не догадываются что надо прибавить 0х30 к числу чтобы превратить его в соответствующий символ.

Для ответа на вопрос ТС этого недостаточно. Сначала нужно преобразовать int32 в BCD.

Сможете это сделать "за 2 минуты" не используя операцию деления? ;)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...