реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> перевод массива 0 и 1 в HEX, Элементарный вопрос
Vny4ek
сообщение Nov 26 2009, 07:54
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 145
Регистрация: 11-01-08
Пользователь №: 34 001



Здрастье, ребят помогите плиз, всю голову сломал уже.
задача такая есть у меня масив int Buf[63] в нем лежат либо 0 либо 1 (почему int не спрашивайте, не получается у меня ему bit почему то тип объявить)
мне нужно взять по порядку четыре значения Buf[0] Buf[1] Buf[2] Buf[3] и представить не в виде 1010 а в виде 16 ричного числа.
тоесть мне хочется представить все 64 нуля и еденичек в 16 символов шестнадцатиричных для вывода в UART или дисплей.
Go to the top of the page
 
+Quote Post
XVR
сообщение Nov 26 2009, 08:12
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 3 123
Регистрация: 7-04-07
Из: Химки
Пользователь №: 26 847



Код
char a=buf[0]|(buf[1]<<1)|(buf[2]<<2)|(buf[3]<<3);
if (a<=9) a+='0';
else a+='A'-10;
в a твой символ

PS. Если появляются массивы типа твоего buf, то это явный признак того, что програмист не в курсе того, как в процессоре представленны числа wink.gif

Сообщение отредактировал XVR - Nov 26 2009, 08:14
Go to the top of the page
 
+Quote Post
DpInRock
сообщение Nov 26 2009, 08:31
Сообщение #3


Гуру
******

Группа: Участник
Сообщений: 2 254
Регистрация: 4-05-07
Из: Moscow
Пользователь №: 27 515



unsigned char a=(buf[0]<<3)+(buf[1]<<2)+(buf[2]<<1)+buf[3];


--------------------
On the road again (Canned Heat)
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 17th June 2025 - 19:59
Рейтинг@Mail.ru


Страница сгенерированна за 0.01451 секунд с 7
ELECTRONIX ©2004-2016