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

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

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

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

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 09.04.2010, 11:12   #1
yoorich
 
Регистрация: 09.04.2010
Сообщений: 3
По умолчанию В каждом байте...

Доброго дня. вот задали такую задачку.
Ниче не понимаю

В каждом байте переместить все единичные биты в начало

Памажитееее!!!
yoorich вне форума
Старый 09.04.2010, 11:46   #2
evgn
Разрабатываюсь....
Пользователь
 
Регистрация: 16.11.2008
Сообщений: 68
По умолчанию

Примерно так можно сделать...
b - это Ваш байт, который надо обработать.
Код:
unsigned char b, bo = 0;
int c = 0;
for(int i = 0;i < 8;i++)
{
         if(b & (1<<i))  bo |= (1<<c++);
}
b = bo;

Последний раз редактировалось evgn; 09.04.2010 в 11:49.
evgn вне форума
Старый 09.04.2010, 13:30   #3
yoorich
 
Регистрация: 09.04.2010
Сообщений: 3
По умолчанию

EVGN

Огромное спасибо,
очень благодарен за ответ, не смотря на строгость правил форума.
yoorich вне форума
Старый 09.04.2010, 21:19   #4
atenon
Форумчанин
 
Регистрация: 05.12.2009
Сообщений: 253
По умолчанию

Если не сложно разъясните строку.
Код:
  if(b & (1<<i))  bo |= (1<<c++);
Непонятно вот это
Цитата:
(1<<i)
это
Цитата:
|=
и вот это
Цитата:
1<<c++
Приходится бежать со всех ног, чтобы только остаться на том же месте! Если хочешь попасть в другое место, тогда нужно бежать по меньшей мере вдвое быстрее! Льюис Кэрол
atenon вне форума
Закрытая тема


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
сколько электронов в одном байте? Ringsheep Помощь студентам 12 25.03.2010 09:37
Даны три массива по 10 элементов в каждом. ЮРИЙ ЮРЫЧ Помощь студентам 0 23.12.2009 19:38
в каждом слове обратить порядок букв Maksik Паскаль, Turbo Pascal, PascalABC.NET 7 20.10.2009 20:24
На каждом клике действие! Rebel123 Общие вопросы Delphi 2 28.08.2009 22:22
Заголовок на каждом листе печати JarVal HTML и CSS 6 13.05.2008 16:36