[an error occurred while processing this directive]
Ответ: Корректный вариант функции преобразования
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено Bill 17 декабря 2002 г. 18:27
В ответ на: Ответ: Нет проблем, только требовался перевод в десятичной системе. отправлено Bill 17 декабря 2002 г. 15:37


char *itoh(int i, char *s)
{
if(i == 0)
{
*s = '0';
*(s+1) = 0; // Append string terminator
}
else {
char d = i % 16;
itoh(i / 16, s+1);
*s = (d <= 9) ? d + '0' : d - 10 + 'A';
}
return s;
}
//
// Итеративный вариант функции преобразования
//
char *itoh(unsigned i, char *s)
{
char count = 4; // Set digit counter
char ch; // Temp location

*(s += 4) = 0; // Set pointer to string end
// and set string terminator
do { // Do the conversion
*--cp = ((ch = (char)i & 0x0F) <= 9)? ch+'0' : ch+'A'-10;
i >>= 4;
}
while (--count);

return s;
}


Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru