Разработка, производство и продажа радиоэлектронной аппаратуры
|
Карта сайта
|
Пишите нам
|
В избранное
Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс.
e-mail:
jobsmp@pochta.ru
Телесистемы
|
Электроника
|
Конференция «Микроконтроллеры и их применение»
Подведём итог.... Тестовый исходник получился такой
Отправлено
ZoltriX
(78.40.231.89)
14 июня 2010, г. 13:39
В ответ на:
В общем, вот так будет для заполнения байт массива сдвигов влево >>
отправлено
VasilyS
14 июня 2010, г. 12:49
#define GET_BIT (n) ( ((Array[(n)>>3]) & (1<<( 7-((n)&0x07))))? \ (1) : (0) )
unsigned char x, sovpadenie;
x = 0;
sovpadenie = 0;
do{
if( ( (GET_BIT(x) << 7) == (Mask & 0x80) ) &&
( (GET_BIT(x+1) << 6) == (Mask & 0x40) ) &&
( (GET_BIT(x+2) << 5) == (Mask & 0x20) ) &&
( (GET_BIT(x+3) << 4) == (Mask & 0x10) ) &&
( (GET_BIT(x+4) << 3) == (Mask & 0x08) ) &&
( (GET_BIT(x+5) << 2) == (Mask & 0x04) ) &&
( (GET_BIT(x+6) << 1) == (Mask & 0x02) ) &&
( (GET_BIT(x+7) << 0) == (Mask & 0x01) ) )
{
sovpadenie = 1; break;
}
x++;
}
while (x < 249)
if (sovpadenie == 1) printf("Совпадение с маской, начиная с бита № = %d", x);
Вроде логично, но как то слишком много действий, нет ли тут избыточности/неоптимальности?
Составить ответ
|
Вернуться на конференцию
Ответы
Алгоритм самый что ни на есть медленный, это правда.
-
VasilyS
(14.06.2010, 14:15:24
80.92.96.25
,
пустое
)
Ага, попробуй компильнуть. Только после while(x<249) точку с запятой поставь. И массив объяви >>
-
VasilyS
(14.06.2010, 14:14:11
80.92.96.25
, 289 байт)
А как тебе варианты что PaulS и mandigit чуть выше предложили. Выглядят компактней по коду
-
ZoltriX
(14.06.2010, 16:02:51
78.40.231.89
,
пустое
)
То, что я вижу - имхо неработоспособно.
-
VasilyS
(14.06.2010, 20:25:59
80.92.96.25
,
пустое
)
А вот так - попробуй. Но - медленно, тоже медленно.
-
VasilyS
(14.06.2010, 20:41:42
80.92.96.25
, 381 байт)
Указатель pBuff конечно, до использования надо натравить на начало массива Array[32]
-
VasilyS
(14.06.2010, 21:46:17
80.92.96.25
,
пустое
)
Отправка ответа
Имя*:
Пароль:
E-mail:
Тема*:
Сообщение:
Ссылка на URL:
URL изображения:
если вы незарегистрированный на форуме пользователь, то
для успешного добавления сообщения заполните поле, как указано ниже:
увеличьте 2 вдвое:
Перейти к списку ответов
|
Конференция
|
Раздел "Электроника"
|
Главная страница
|
Карта сайта
Web
telesys.ru