роботы робототехника микроконтроллеры


 Страниц (1): [1]   

> Без описания
alexey6522 Post Id



Лейтенант


Сообщений всего: 27
Дата рег-ции: Авг. 2011  



Добрый день! Пишу программу для МК atmega128 использую Proteus.
Суть вопроса, есть массив char s[7] в нем записан двоичный код
char s[7] = {'0', '0', '0', '1', '0', '0', '1'};
как мне его преобразовать в число Hex?
(Добавление)
alexey6522 пишет:
Добрый день! Пишу программу для МК atmega128 использую Proteus.
Суть вопроса, есть массив char s[7] в нем записан двоичный код
char s[7] = {'0', '0', '0', '1', '0', '0', '1'};
как мне его преобразовать в число Hex?

Уже нашел.
CODE:

char bin[5] = {'0', '1', '0', '0', '1'};
unsigned short k=0;
unsigned short dec = 0x0000;
for (int i = 4; i > 0; i--, k++) {
if (bin[i] == '1')
dec |= (unsigned short)(1 << k);
}
 
 Top
cjA Post Id



Генерал


Сообщений всего: 3291
Дата рег-ции: Янв. 2010  



должно получится 9. не знаю есть ли в Си логарифм по 16 но вроде нужно так- брать цифру, возводить в следующую степень двойки, складывать с предыдущей, а потом брать логарифм по 16. В стандартных библиотеках Ады эта функция есть, но точно помню что она не такая короткая. Подозреваю что в стандартных библиотеках Си она тоже есть.
О! Правильно заданая задача- половина решения! Тебе на выходе что нужно? число для вывода на экран или для процессора? (Или для зачетки?)
 
 Top
Страниц (1): [1]
« Программирование микроконтроллеров »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 





Powered by Exclusive Bulletin Board
ExBB FM 1.0 RC1 Smiles by Fool from Foolstown
  Яндекс.Метрика   Рейтинг@Mail.ru