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

Работа с битами в Char - C++

Восстановить пароль Регистрация
 
Писарев Иван
0 / 0 / 0
Регистрация: 05.09.2012
Сообщений: 44
06.09.2013, 22:52     Работа с битами в Char #1
Доброго времни суток!
Стоит задача сделать операцию сложения битов по модулю 2 над двумя объектами типа char, приравнять полученный результат третей переменной типа char. На пальцах:
char, насколько я помню, состоит из 8 биотв. Допустим, имеются две переменные char, имеющие следующие битовые состовляющие(прощу прощения за не технический язык):
a = 10111010
b = 11111111

Сделаем необходимую операцию над каждым битом и запишем в переменную с того же типа:

c[i]=a[i]^b[i], где i - номер бита(от 0 до 7);

C++
1
2
3
4
for(int i=0; i<8; i++)
    {
        (c>>i) = (a>>i)&(b>>i);
    }
Данный цикл по какой-то причине не работает.

Переменные не обязательно должны быть числами. Заранее благодарен!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.09.2013, 22:52     Работа с битами в Char
Посмотрите здесь:

C++ Работа с битами
C++ Работа с битами.
Работа с битами. C++
Работа с битами C++
C++ Работа с битами
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Dani
1263 / 621 / 50
Регистрация: 11.08.2011
Сообщений: 2,236
Записей в блоге: 2
Завершенные тесты: 1
06.09.2013, 22:55     Работа с битами в Char #2
Цитата Сообщение от Писарев Иван Посмотреть сообщение
Стоит задача сделать операцию сложения битов по модулю 2 над двумя объектами типа char
Есть же опертор ^
Писарев Иван
0 / 0 / 0
Регистрация: 05.09.2012
Сообщений: 44
06.09.2013, 23:01  [ТС]     Работа с битами в Char #3
Цитата Сообщение от Dani Посмотреть сообщение
Есть же опертор ^
Да, вы правы, прошу прощения. Во время описания проблемы по глупости поставил вместо оператора ^ оператор &. Тем не менее, даже с правильным оператором, все равно не работает.

Добавлено через 4 минуты
так же пробовал c = (a>>i)&(b>>i), но тоже бред получался.
Dani
1263 / 621 / 50
Регистрация: 11.08.2011
Сообщений: 2,236
Записей в блоге: 2
Завершенные тесты: 1
06.09.2013, 23:05     Работа с битами в Char #4
Писарев Иван, c = a^b; Оно уже сделает все за вас! (сложит все биты по модулю 2)
Писарев Иван
0 / 0 / 0
Регистрация: 05.09.2012
Сообщений: 44
06.09.2013, 23:14  [ТС]     Работа с битами в Char #5
Цитата Сообщение от Dani Посмотреть сообщение
Писарев Иван, c = a^b; Оно уже сделает все за вас! (сложит все биты по модулю 2)
В цикле
C++
1
2
3
4
for(int i=0; i<8; i++)
    {
        (c>>i) = (a>>i)^(b>>i);
    }
ошибка: " выражение должно быть допустимым для изменения левосторонним значением"

а если поставить не (c>>i) = (a>>i)^(b>>i);, а c = (a>>i)^(b>>i); программа работает неверно.
Вот в чем заключается моя проблема.
Dani
1263 / 621 / 50
Регистрация: 11.08.2011
Сообщений: 2,236
Записей в блоге: 2
Завершенные тесты: 1
06.09.2013, 23:19     Работа с битами в Char #6
Писарев Иван, ты думаешь, что тебе самому надо проходить по всем битам, а стандартный оператор сделает это за тебя! http://codepad.org/m4AaWU75
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.09.2013, 23:25     Работа с битами в Char
Еще ссылки по теме:

Работа с битами C++
работа с битами C++
Работа с битами C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Писарев Иван
0 / 0 / 0
Регистрация: 05.09.2012
Сообщений: 44
06.09.2013, 23:25  [ТС]     Работа с битами в Char #7
Цитата Сообщение от Dani Посмотреть сообщение
Писарев Иван, ты думаешь, что тебе самому надо проходить по всем битам, а стандартный оператор сделает это за тебя! http://codepad.org/m4AaWU75
Сижу битый час над этой операцией... А оказывается все просто) У меня возникала такая идея, но по глупости я ее применял не к char, a к char*. Огромное спасибо!)
Yandex
Объявления
06.09.2013, 23:25     Работа с битами в Char
Ответ Создать тему
Опции темы

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