Не знаю, как насчет красоты, но конкретно для Вашего случая навскидку:
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

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

Отправлено blackbit 30 июня 2003 г. 17:05
В ответ на: Прошу прощения, примеры дал неправильно, младший байт в ASCII первый. Таким образом ASCII=>HEX 37h 39h ascii = 97h hex, и HEX=> ASCII FEh = 45h 46h ascii. отправлено DM 30 июня 2003 г. 02:23

unsigned char byte=0, i=2;
unsigned char arr[2]={0x37,0x39};


main()
{
// 0x37 0x39 ASCII->HEX 0x79
byte=*(arr+1)&0x0F;
*(arr+1)&=0x0F;
byte|=*arr<<4;

// 0xFE HEX->ASCII 0x46 0x45
byte=0xFE;

*arr=0; // ïðîñòî äëÿ î÷èñòêè ñîâåñòè
*(arr+1)=0; // òîæå ñàìîå :)

// HEX->ASCII
*arr=byte>>4&0x0F;
*(arr+1)=byte&0x0F;
while(i--) *(arr+i) +=*(arr+i)<0x0A?0x30:0x37;
}

Коли ошибся где - не обессудьте, последние дни перед увольнением.
Идея, надеюсь, понятна, а красоту сами наведете.
Запарка, понимашь....

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

Ответы



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

E-mail: info@telesys.ru