Форум myROBOT.ru » Шаг за шагом » Программирование микроконтроллеров » Помогите перевести двоичный код в Hex

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

1. alexey6522 - 22 Ноября, 2014 - 11:12:27 - перейти к сообщению
Добрый день! Пишу программу для МК 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);
}
2. cjA - 23 Ноября, 2014 - 02:08:25 - перейти к сообщению
должно получится 9. не знаю есть ли в Си логарифм по 16 но вроде нужно так- брать цифру, возводить в следующую степень двойки, складывать с предыдущей, а потом брать логарифм по 16. В стандартных библиотеках Ады эта функция есть, но точно помню что она не такая короткая. Подозреваю что в стандартных библиотеках Си она тоже есть.
О! Правильно заданая задача- половина решения! Тебе на выходе что нужно? число для вывода на экран или для процессора? (Или для зачетки?)