реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> C вывод числа в последовательный порт, Как изящно преобразовать число в десятичный вид
yakub_EZ
сообщение Nov 3 2010, 09:34
Сообщение #1


Профессионал
*****

Группа: Свой
Сообщений: 1 329
Регистрация: 6-12-08
Из: Москва
Пользователь №: 42 252



Имею стартеркитовскую отладку с LPC2388, программу пишу на си в Keil мювижн 4. Передается некоторое целое числовое значение (до 10000 в десятичной системе) по uart, хотелось бы его видеть в окне терминала в десятичном коде.
Я так понимаю, можно поделить его по десятичным порядкам, столбиком, и вывести, перекодируя в коды ASСII, но неужели в этих продвинутых средах разработки на этот случай нет уже чего готового? Или есть какя нибудь библиотека?
Go to the top of the page
 
+Quote Post
MrYuran
сообщение Nov 3 2010, 09:53
Сообщение #2


Беспросветный оптимист
******

Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646



Цитата(yakub_EZ @ Nov 3 2010, 13:34) *
Я так понимаю, можно поделить его по десятичным порядкам, столбиком, и вывести, перекодируя в коды ASСII, но неужели в этих продвинутых средах разработки на этот случай нет уже чего готового? Или есть какя нибудь библиотека?

Есть, stdlib и функция printf()


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post
dimka76
сообщение Nov 3 2010, 10:05
Сообщение #3


developer
****

Группа: Свой
Сообщений: 902
Регистрация: 12-04-06
Из: Казань
Пользователь №: 16 032



еще itoa(...) можно использовать


--------------------
Все может быть и быть все может, и лишь того не может быть-чего уж точно быть не может, хотя..и это может быть.
Go to the top of the page
 
+Quote Post
ukpyr
сообщение Nov 3 2010, 10:25
Сообщение #4


Профессионал
*****

Группа: Участник
Сообщений: 1 264
Регистрация: 17-06-08
Из: бандустан
Пользователь №: 38 347



последовательно вычитать степени 10
Go to the top of the page
 
+Quote Post
demiurg_spb
сообщение Nov 3 2010, 10:33
Сообщение #5


неотягощённый злом
******

Группа: Свой
Сообщений: 2 746
Регистрация: 31-01-08
Из: Санкт-Петербург
Пользователь №: 34 643



Пользуйтесь поиском по форуму.
Миллион раз обсасывалось...


--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
Go to the top of the page
 
+Quote Post
yakub_EZ
сообщение Nov 3 2010, 11:35
Сообщение #6


Профессионал
*****

Группа: Свой
Сообщений: 1 329
Регистрация: 6-12-08
Из: Москва
Пользователь №: 42 252



Обсабывалсь действительно много раз, да каждый раз по разному.
Решение именно этой задачи не нашел.
Код
printf("K1 = %04XH\n", K1);

в <stdio.h> и <stdlib.h> выдает только шестнадцатиричные значения? (Без X выдает пустую строку)
К ней добавить десятичный вычитатель.
itoa(..) - хэлп микровижн молчит
Go to the top of the page
 
+Quote Post
MrYuran
сообщение Nov 3 2010, 11:44
Сообщение #7


Беспросветный оптимист
******

Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646



Цитата(yakub_EZ @ Nov 3 2010, 15:35) *
в <stdio.h> и <stdlib.h> выдает только шестнадцатиричные значения? (Без X выдает пустую строку)

a "%d" что выдаёт?


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post
yakub_EZ
сообщение Nov 3 2010, 11:52
Сообщение #8


Профессионал
*****

Группа: Свой
Сообщений: 1 329
Регистрация: 6-12-08
Из: Москва
Пользователь №: 42 252



Цитата(MrYuran @ Nov 3 2010, 14:44) *
a "%d" что выдаёт?

То, что надо выдает biggrin.gif . Запустил при <stdio.h> . Спасибо, сэкономили просто кучу времени
Go to the top of the page
 
+Quote Post
sigmaN
сообщение Nov 3 2010, 19:45
Сообщение #9


I WANT TO BELIEVE
******

Группа: Свой
Сообщений: 2 617
Регистрация: 9-03-08
Пользователь №: 35 751



Иногда хэлпы читать всё ж полезно))


--------------------
The truth is out there...
Go to the top of the page
 
+Quote Post
yakub_EZ
сообщение Nov 3 2010, 20:13
Сообщение #10


Профессионал
*****

Группа: Свой
Сообщений: 1 329
Регистрация: 6-12-08
Из: Москва
Пользователь №: 42 252



sigmaN Хелпе чего? Направьте на путь истинный пожалуйста.
Хелп мювижн на 70% посвящен отладочным платам и фото их разъёмов и кнопочек. Запрос по тэгам "stdio", "printf" просто вываливает их (отладочные платы) по порядку.
Даташит на контроллер у меня распечатан и переплетен, но там про это ни строчки
Книга Тревора Мартина является большей частью подставкой под плату, чем источник информации.
Гугл же дает много и приходится долго выискивать, жонглирвать запросами
Go to the top of the page
 
+Quote Post
Artem_Petrik
сообщение Nov 3 2010, 20:39
Сообщение #11


Местный
***

Группа: Свой
Сообщений: 443
Регистрация: 22-07-06
Из: Украина, г. Харьков
Пользователь №: 19 006



Цитата(yakub_EZ @ Nov 3 2010, 22:13) *
Хелпе чего? Направьте на путь истинный пожалуйста.


Начните с Кернигана и Ричи. Ну или конкретно справочник по standard C library. На худой конец - непосредственно стандарт на язык. Все, что касается непосредственно стандарта на язык С платформонезависимо, а потому традиционно не освещается в хелпах на конкретный компилятор/ИДЕ. Предполагается, что пользователь уже знаком непосредственно с языком.
Go to the top of the page
 
+Quote Post
sigmaN
сообщение Nov 4 2010, 06:09
Сообщение #12


I WANT TO BELIEVE
******

Группа: Свой
Сообщений: 2 617
Регистрация: 9-03-08
Пользователь №: 35 751



Ну да да, эмбэддэд среды разработки более ориентированы на свою специфику и даже не смотря на наличие компилятора, могут не содержать хэлпа.
Ео любой хэлп по Си расскажет Вам про printf всё, что только можно и чего нельзя )))
Причём надо понимать, что printf - это функция из стандартной библиотеки языка Си и везде она будет одинакова - т.е. брать можно любой хэлп.
Собственно, гугль первой же ссылкой на запрос printf выдаёт http://ru.wikipedia.org/wiki/Printf уж не знаю что ещё можно добавить. Растолковано всё))

И вообще, вбить имя функции в гугль - это ж как Отче наш smile.gif


--------------------
The truth is out there...
Go to the top of the page
 
+Quote Post
sergeeff
сообщение Nov 4 2010, 07:35
Сообщение #13


Профессионал
*****

Группа: Свой
Сообщений: 1 481
Регистрация: 10-04-05
Пользователь №: 4 007



Цитата(yakub_EZ @ Nov 3 2010, 15:35) *
Обсабывалсь действительно много раз, да каждый раз по разному.
Решение именно этой задачи не нашел.


Купите себе "Полный справочник по С" Герберта Шилда и положите себе под руку на рабочем столе, тогда не будите срамиться с такими вопросами.
Go to the top of the page
 
+Quote Post
ViKo
сообщение Nov 4 2010, 16:01
Сообщение #14


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Цитата(yakub_EZ @ Nov 3 2010, 22:13) *
Направьте на путь истинный пожалуйста...

Может быть, вам окажется полезным почитать эту тему.
http://electronix.ru/forum/index.php?showt...=77779&st=0
Go to the top of the page
 
+Quote Post
alekseykoj
сообщение Feb 10 2011, 10:18
Сообщение #15


Участник
*

Группа: Свой
Сообщений: 60
Регистрация: 8-11-05
Пользователь №: 10 602



Функция itoa. Ее использование не предусматривает переносимости, поскольку эта функция не определена ни в одном стандарте языка Си; тем не менее, компиляторы поддерживают ее за счет использования заголовка <stdlib.h>

void itoa(int input, char *buffer, int radix)

itoa принимает передаваемое целое число input и конвертирует его в число в основании корня radix. Полученное число (последовательность цифр основания radix) записывается в буфер вывода buffer.

Аргумент radix определяет основание системы исчисления для input; его значение может лежать в пределах от 2 до 36.

В зависимости от реализации, itoa может возвращать указатель на первый символ в буфере buffer, или может быть создана таким образом, чтобы передавать нуль-buffer, в результате чего функция возвращает длину строки, которая «будет» записана в корректный buffer.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 06:49
Рейтинг@Mail.ru


Страница сгенерированна за 0.01487 секунд с 7
ELECTRONIX ©2004-2016