Jump to content

    

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

9 minutes ago, andrew_b said:

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

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

Share this post


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

itoa

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

 

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
22 minutes ago, dimka76 said:

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

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

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

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this