Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.04.2013, 09:09   #1
Эдуардэ
Новичок
Джуниор
 
Регистрация: 08.04.2013
Сообщений: 2
По умолчанию В каждом байте

Помогите написать программу(С++)В каждом байте перенести все единичные биты в середину. (должно получиться 00001000)
Эдуардэ вне форума Ответить с цитированием
Старый 08.04.2013, 10:13   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Что-то типа:
Код:
short int aga(short int i){
 int uno=0,duo=0;
 for(;i;i=i>>1) uno+=(i&1)?1:0;
 for(i=0;i<uno;i++) {duo=duo | 1; duo=duo<<1;}
 uno=(8-uno)/2;
 for(i=0;i<uno;i++) {duo=duo<<1;}
 return duo;
}
Использовать: printf("%d",aga(123));
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 08.04.2013, 12:31   #3
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

Цитата:
Помогите написать программу(С++)В каждом байте перенести все единичные биты в середину. (должно получиться 00001000)
Код:
int NumOfBits(char byte){
  static const int count[] = {0, 1, 1, 2, 1, 2, 2, 3, 1, 2, 2, 3, 2, 3, 3, 4};
  return count[byte & 0x0F] + count[byte>>4];
}

char CenterBits(char byte){
  static const char results[] = {0x00, 0x08, 0x18, 0x1C, 0x3C, 0x3E, 0x7E, 0x7F, 0xFF};
  return results[NumOfBits(byte)];
}
Abstraction вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Циклический сдвиг тетрады в байте (С) ktulhobraz Помощь студентам 1 07.11.2012 01:27
Символ пробела в старшем и младшем байте Толстой Общие вопросы C/C++ 0 13.12.2011 15:42
Изменение битов в байте bondik Общие вопросы .NET 1 08.10.2010 22:02
В каждом байте... yoorich Общие вопросы C/C++ 3 09.04.2010 21:19
сколько электронов в одном байте? Ringsheep Помощь студентам 12 25.03.2010 09:37