Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

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

Здесь нужно купить рекламу за 25 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Название темы включает слова - "Помогите", "Спасите", "Срочно"
Название темы не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте >>>правила <<< и заново правильно создайте тему.
 
Опции темы
Старый 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 вне форума  
Закрытая тема

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
сколько электронов в одном байте? Ringsheep Помощь студентам 12 25.03.2010 10:37
Даны три массива по 10 элементов в каждом. ЮРИЙ ЮРЫЧ Помощь студентам 0 23.12.2009 20: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


07:51.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.