Страница 1 из 1
Из 16 в 10 на ATMEL
Добавлено: Вт янв 25, 2011 16:34:05
Slavast
Добрый день!
Подскажите как на Си можно перевести число из 16ричной системы в 10чную?
Есть какой-то готовый код или библиотека?
Спасибо.
Re: Из 16 в 10 на ATMEL
Добавлено: Вт янв 25, 2011 16:57:20
Danko
Найдите отличия.
P.S.
восьмиричную забыл
Re: Из 16 в 10 на ATMEL
Добавлено: Вт янв 25, 2011 17:41:52
Slavast
Danko писал(а):Найдите отличия.
P.S.
восьмиричную забыл
Мне это необходимо для отображения значение АЦП на экране.
Ведь фраза "Напряжение на АЦП: 0x49" не очень хорошо читабельна.
Вот я и ударился в поисках срвета.
Re: Из 16 в 10 на ATMEL
Добавлено: Вт янв 25, 2011 17:43:17
Fasterpast
Это вам тогда надо число в строку =) itoa функция =)
Re: Из 16 в 10 на ATMEL
Добавлено: Вт янв 25, 2011 17:55:13
Danko
поищите описание sprintf
Re: Из 16 в 10 на ATMEL
Добавлено: Чт янв 27, 2011 21:07:26
12val12
Я кажется понял что нужно товарищу
примерчик ..так вывожу свои цифры
void print_int (unsigned int s)
{
c4=0;c3=0;c2=0;c1=0;
while (s>=10000){s-=10000;c4++;}
while (s>=1000){s-=1000;c3++;}
while (s>=100){s-=100;c2++;}
while (s>=10){s-=10;c1++;}
c0=s;
if (c4!=0) {print_char(c4+16);}
print_char(c3+16);
print_char(c2+16);
print_char(c1+16);
print_char(c0+16);
}
Re: Из 16 в 10 на ATMEL
Добавлено: Чт янв 27, 2011 22:33:03
leowka
как выше сказали sprintf
вот примерчик из инета:
Код: Выделить всё
/* sprintf example */
#include <stdio.h>
int main ()
{
char buffer [50];
int n, a=5, b=3;
n=sprintf (buffer, "%d plus %d is %d", a, b, a+b);
printf ("[%s] is a %d char long string\n",buffer,n);
return 0;
}
Output:
[5 plus 3 is 8] is a 13 char long string
Re: Из 16 в 10 на ATMEL
Добавлено: Чт янв 27, 2011 22:58:44
BCluster
в sprintf %d - в десятичной форме будет число, если %X - в 16ричной.
Re: Из 16 в 10 на ATMEL
Добавлено: Пт янв 28, 2011 18:02:09
Кислый
itoa функция =)
функция крайне медленная и почти во всех реализациях крайне ущербна. при этом еще и относительно велика.
это моё личное мнение.
Код: Выделить всё
uint8_t i = 255;
char D[25] = {};
sprintf (D, "%.d", i);
врт вам перенос числа i в десятичном виде строку\массив.
да. для таких вопросов у нас есть прикреплённая тема.
Вопросы по С/С++ (СИ)