Телесистемы
 Разработка, производство и продажа радиоэлектронной аппаратуры
На главную   | Карта сайта | Пишите нам | В избранное
Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс.
e-mail:jobsmp@pochta.ru

Телесистемы | Электроника | Конференция «Микроконтроллеры и их применение»

Для эмбедеров-колясочников, трудящихся в день субботний вместо пьянки и баб. Может кому пригодится >>

Отправлено VasilyS (80.92.96.25) 24 июля 2010, г. 16:47



// Обмен двух групп бит внутри слова.
unsigned int SwapGrBits(
unsigned int sou, // Исходное число.
unsigned char pos1, // Начальная позиция первой группы бит.
unsigned char pos2, // Начальная позиция второй группы бит.
unsigned char kol // Количество бит в каждой группе.
)
{
register unsigned int tmp; // Вспомогательная переменная.
// Проверка допустимости вх. аргументов (опцион.).
if( pos1 > (sizeof(sou)<<3)) { pos1 %= (sizeof( sou )<<3); }
if( pos2 > (sizeof(sou)<<3)) { pos2 %= (sizeof( sou )<<3); }
if( kol > (sizeof(sou)<<3)) { kol %= (sizeof( sou )<<3); }
tmp = ((sou >> pos1) ^ (sou >> pos2)) & ((1U << kol) - 1);
return( sou ^ ((tmp << pos1) | (tmp << pos2)) );
}


Составить ответ | Вернуться на конференцию

Ответы


Отправка ответа
Имя*: 
Пароль: 
E-mail: 
Тема*:

Сообщение:

Ссылка на URL: 
URL изображения: 

если вы незарегистрированный на форуме пользователь, то
для успешного добавления сообщения заполните поле, как указано ниже:
отымите от 2 единицу:

Перейти к списку ответов | Конференция | Раздел "Электроника" | Главная страница | Карта сайта

Rambler's Top100 Рейтинг@Mail.ru
 
Web telesys.ru