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

Циклический сдвиг битов! - C++

Восстановить пароль Регистрация
 
Sviatospam
 Аватар для Sviatospam
0 / 0 / 0
Регистрация: 28.11.2012
Сообщений: 25
18.01.2013, 20:44     Циклический сдвиг битов! #1
Очень срочно нужна помощь.

Нужно реализовать функцию, которая осуществляет циклический сдвиг битов на 1 бит вправо в левом полубайте и на 1 бит влево в правом полубайте asci-кодов символов с инверсией всех битов.

Программа осуществляет кодировку-декодировку текста.

C++
1
2
3
4
unsigned Char Coding(unsigned char ch)
{
    return ~(((ch & 0x E0) >> 1) | ((ch & 0x07) <<1));
}
Вот что имеется, но совсем неуверен в правильности.

Добавлено через 14 минут
Кто-нибудь, ау!!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.01.2013, 20:44     Циклический сдвиг битов!
Посмотрите здесь:

C++ Циклический сдвиг битов 2
C++ Циклический сдвиг.
Циклический сдвиг C++
Циклический сдвиг C++
C++ Циклический сдвиг
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Avazart
 Аватар для Avazart
6906 / 5146 / 253
Регистрация: 10.12.2010
Сообщений: 22,639
Записей в блоге: 17
18.01.2013, 20:53     Циклический сдвиг битов! #2
std::bitset<>;
std::rotate<>();
Sviatospam
 Аватар для Sviatospam
0 / 0 / 0
Регистрация: 28.11.2012
Сообщений: 25
18.01.2013, 20:59  [ТС]     Циклический сдвиг битов! #3
Мне нужно именно этим методом.

Добавлено через 26 секунд
А не стандартными функциями.
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11845 / 6824 / 771
Регистрация: 27.09.2012
Сообщений: 16,919
Записей в блоге: 2
Завершенные тесты: 1
18.01.2013, 21:01     Циклический сдвиг битов! #4
Цитата Сообщение от Sviatospam Посмотреть сообщение
Мне нужно именно этим методом.
Ну так Вы же все сделали. В чем вопрос то?
Sviatospam
 Аватар для Sviatospam
0 / 0 / 0
Регистрация: 28.11.2012
Сообщений: 25
18.01.2013, 21:13  [ТС]     Циклический сдвиг битов! #5
Он сдвигает на бит, но обычным методом. Вот я и спрашиваю, как сделать циклически?

Добавлено через 7 минут
Мне непонятна запись 0xE0. Что она означает?
Avazart
 Аватар для Avazart
6906 / 5146 / 253
Регистрация: 10.12.2010
Сообщений: 22,639
Записей в блоге: 17
18.01.2013, 21:14     Циклический сдвиг битов! #6
Цитата Сообщение от Sviatospam Посмотреть сообщение
Мне непонятна запись 0xE0. Что она означает?
В 16- системе число E0 т.е 224dec
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11845 / 6824 / 771
Регистрация: 27.09.2012
Сообщений: 16,919
Записей в блоге: 2
Завершенные тесты: 1
18.01.2013, 21:15     Циклический сдвиг битов! #7
Цитата Сообщение от Sviatospam Посмотреть сообщение
Он сдвигает на бит, но обычным методом. Вот я и спрашиваю, как сделать циклически?
C++
1
2
3
4
unsigned char Coding(unsigned char ch)
{
    return ~(((ch & 0xE0) >> 1) | ((ch & 0x10)<<3) | ((ch & 0x8)>>3) | ((ch & 0x07) <<1));
}
Sviatospam
 Аватар для Sviatospam
0 / 0 / 0
Регистрация: 28.11.2012
Сообщений: 25
18.01.2013, 21:23  [ТС]     Циклический сдвиг битов! #8
Большое спасибо)

Добавлено через 6 минут
А как организовать функцию декодирования?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.01.2013, 21:35     Циклический сдвиг битов!
Еще ссылки по теме:

Циклический сдвиг битов C++
Циклический сдвиг битов в строке C++
Циклический сдвиг битов в байте C++

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

Или воспользуйтесь поиском по форуму:
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11845 / 6824 / 771
Регистрация: 27.09.2012
Сообщений: 16,919
Записей в блоге: 2
Завершенные тесты: 1
18.01.2013, 21:35     Циклический сдвиг битов! #9
Цитата Сообщение от Sviatospam Посмотреть сообщение
А как организовать функцию декодирования?
Двигать в обратную сторону
C++
1
2
3
4
unsigned char EnCoding(unsigned char ch)
{
    return ~(((ch & 0x70) << 1) | ((ch & 0x80)>>3) | ((ch & 0x1)<<3) | ((ch & 0xE) >>1));
}
Yandex
Объявления
18.01.2013, 21:35     Циклический сдвиг битов!
Ответ Создать тему
Опции темы

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