Из 16 в 10 на ATMEL

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Закрыто
Открыл глаза
Сообщения: 66
Зарегистрирован: Чт окт 21, 2010 10:05:27

Сообщение Slavast »

Добрый день!
Подскажите как на Си можно перевести число из 16ричной системы в 10чную?
Есть какой-то готовый код или библиотека?
Спасибо.
Контактная информация:
Реклама
Сверлит текстолит когтями
Аватара пользователя
Сообщения: 1287
Зарегистрирован: Пн окт 13, 2008 11:45:54
Откуда: РФ, Крым, г.Бахчисарай

Сообщение Danko »

Код: Выделить всё

C = 255;
C = 0xFF;
C = 0b11111111;
Найдите отличия.


P.S.
восьмиричную забыл :(

Код: Выделить всё

C = 0377
Первое, что привлекает в программировании, объяснить просто: ты говоришь компьютеру что то сделать, и он это делает. Безошибочно. Всегда. Без возражений.
---------------------
Линус Торвальдс. "Just for fun. Рассказ нечаянного революционера"
Контактная информация:
Реклама
Открыл глаза
Сообщения: 66
Зарегистрирован: Чт окт 21, 2010 10:05:27

Сообщение Slavast »

Danko писал(а):

Код: Выделить всё

C = 255;
C = 0xFF;
C = 0b11111111;
Найдите отличия.
P.S.
восьмиричную забыл :(

Код: Выделить всё

C = 0377
Мне это необходимо для отображения значение АЦП на экране.
Ведь фраза "Напряжение на АЦП: 0x49" не очень хорошо читабельна.
Вот я и ударился в поисках срвета.
Контактная информация:
Мучитель микросхем
Аватара пользователя
Сообщения: 493
Зарегистрирован: Ср фев 14, 2007 12:07:58
Откуда: Москва

Сообщение Fasterpast »

Это вам тогда надо число в строку =) itoa функция =)
Контактная информация:
Реклама
Эиком - электронные компоненты и радиодетали
Сверлит текстолит когтями
Аватара пользователя
Сообщения: 1287
Зарегистрирован: Пн окт 13, 2008 11:45:54
Откуда: РФ, Крым, г.Бахчисарай

Сообщение Danko »

поищите описание sprintf
Первое, что привлекает в программировании, объяснить просто: ты говоришь компьютеру что то сделать, и он это делает. Безошибочно. Всегда. Без возражений.
---------------------
Линус Торвальдс. "Just for fun. Рассказ нечаянного революционера"
Контактная информация:
Реклама
Потрогал лапой паяльник
Сообщения: 315
Зарегистрирован: Пт янв 29, 2010 19:42:27

Сообщение 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);
}
ух ты.... показывает
Реклама
Открыл глаза
Сообщения: 42
Зарегистрирован: Ср мар 24, 2010 08:08:20

Сообщение 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
Контактная информация:
Собутыльник Кота
Аватара пользователя
Сообщения: 2512
Зарегистрирован: Пн апр 06, 2009 19:33:29
Откуда: Молдова, Кишинев

Сообщение BCluster »

в sprintf %d - в десятичной форме будет число, если %X - в 16ричной.
Контактная информация:
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2095
Зарегистрирован: Чт апр 08, 2010 18:50:01
Откуда: Краснодар

Сообщение Кислый »

itoa функция =)
функция крайне медленная и почти во всех реализациях крайне ущербна. при этом еще и относительно велика.

это моё личное мнение.

Код: Выделить всё

    uint8_t i = 255;
    char D[25] = {};
    sprintf (D, "%.d", i);
врт вам перенос числа i в десятичном виде строку\массив.

да. для таких вопросов у нас есть прикреплённая тема. Вопросы по С/С++ (СИ)
RETI ;рети-рети интеррапт, через шины данных тракт, через память, через порт, возвращайся в главный код
@hobbyelectronics
Контактная информация:
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»