Jump to content

    
Sign in to follow this  
TOG

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

Recommended Posts

9 minutes ago, andrew_b said:

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

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

Share this post


Link to post
Share on other sites
4 hours ago, andrew_b said:

 


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

 

 

 

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

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites
1 hour ago, toweroff said:

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

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

1 hour ago, aaarrr said:

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

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

Edited by jenya7

Share this post


Link to post
Share on other sites

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


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

Share this post


Link to post
Share on other sites
13 hours ago, jenya7 said:

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

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

Share this post


Link to post
Share on other sites
15 hours ago, Aleksandr Baranov said:

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

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

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

Share this post


Link to post
Share on other sites

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

Полный пип.ц

Share this post


Link to post
Share on other sites
2 часа назад, x893 сказал:

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

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

Share this post


Link to post
Share on other sites
18 минут назад, HardEgor сказал:

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

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

symbol = number + '0';

а еще лучше 

symbol = '0' + number;

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

Share this post


Link to post
Share on other sites
29 minutes ago, HardEgor said:

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

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

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

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this