Форум программистов, компьютерный форум CyberForum.ru

Подсчет битов - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.78
Filipchik Elena
0 / 0 / 0
Регистрация: 23.03.2010
Сообщений: 14
06.04.2010, 18:37     Подсчет битов #1
На входе даны 2 последовательности по 8 бит IN_0, IN_1.

OUT_0 изначально равен 0.

Если в IN_0 встречаются 2 единицы, идущие подряд, а в IN_1 на этом месте находятся 2 нуля, то значение OUT_0 увеличить на единицу.
(одна единица может учитываться несколько раз)

IN_0-8бит-вход
IN_1-8бит-вход
OUT-3бита-выход
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.04.2010, 18:37     Подсчет битов
Посмотрите здесь:

C++ Обнуление битов
C++ Перенос битов
C++ Замена битов
C++ Замена битов
C++ Копирование битов
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Nick Alte
Эксперт С++
1590 / 982 / 115
Регистрация: 27.09.2009
Сообщений: 1,897
Завершенные тесты: 1
07.04.2010, 08:21     Подсчет битов #2
C
1
2
3
4
5
6
7
8
int i=0;
for(; i<7; i++)
{
    if( (IN_0&3)==3 && (IN_1&3)==0 )
        OUT_0++;
    IN_0 <<= 1;
    IN_1 <<= 1;
}
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9371 / 5421 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
07.04.2010, 08:57     Подсчет битов #3
Nick Alte, а точно не в право нужно сдвигать?
C
1
2
    IN_0 >> 1;
    IN_1 >> 1;
Если я правильно понял, два младших бита тестируются...
Nick Alte
Эксперт С++
1590 / 982 / 115
Регистрация: 27.09.2009
Сообщений: 1,897
Завершенные тесты: 1
07.04.2010, 17:24     Подсчет битов #4
Совершенно верно, вправо. Опечатался спросонья.
Yandex
Объявления
07.04.2010, 17:24     Подсчет битов
Ответ Создать тему
Опции темы

Текущее время: 21:23. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru