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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Sviatospam
0 / 0 / 0
Регистрация: 28.11.2012
Сообщений: 25
#1

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

18.01.2013, 20:44. Просмотров 899. Ответов 8
Метки нет (Все метки)

Очень срочно нужна помощь.

Нужно реализовать функцию, которая осуществляет циклический сдвиг битов на 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++
Создайте функцию, которая перемещает биты для unsigned int на заданное число битов влево, причем выходящие при сдвиге за левую границу...

Циклический сдвиг битов 2 - C++
Помогите пожалуйста решить вопрос. Необходимо реализовать на С++ операцию циклического сдвига битов влево и вправо. Поиском наткнулся на...

Циклический сдвиг битов в строке - C++
Пишу шифрование IDEA. Там есть ключ длинной 128 бит. Этот ключ нужно сдвинуть на 25 бит влево... Собственно накалякал сдвиг для...

Циклический сдвиг битов в байте - C++
Привет. Мне нужно в байте (unsigned char) произвести циклический сдвиг. Как я понимаю &gt;&gt; и &lt;&lt; это не циклический сдвиг. Но как сделать...

Циклический сдвиг битов по столбцу в битовой матрице - C++
Нужна програмка которая создаёт матрицу битов 8х8 и дает возможность делать в ней цикличные сдвики вверх(или вниз) то есть биты с...

Циклический сдвиг битов в байте влево или вправо - C++
Кто-нибудь пробовал реализовать такую задачу на С++. Если да, то какой алгоритм? Например, если 32 &lt;&lt; 10, то в результате должны...

Циклический сдвиг - C++
Здравствуйте помогите пожалуйста мне надо все нечетные строки матрицы сдвинуть циклически на К элементов влево. Знаю тут ужас но не...

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

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

Добавлено через 7 минут
Мне непонятна запись 0xE0. Что она означает?
Avazart
Эксперт С++
7116 / 5293 / 273
Регистрация: 10.12.2010
Сообщений: 23,405
Записей в блоге: 17
18.01.2013, 21:14     Циклический сдвиг битов! #6
Цитата Сообщение от Sviatospam Посмотреть сообщение
Мне непонятна запись 0xE0. Что она означает?
В 16- системе число E0 т.е 224dec
Croessmah
Модератор
Эксперт CЭксперт С++
13052 / 7315 / 814
Регистрация: 27.09.2012
Сообщений: 18,052
Записей в блоге: 3
Завершенные тесты: 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
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++
Нужно написать вот такую прогу, где нужно сдвинуть число а на n бит влево.

циклический сдвиг - C++
написать программу на СИ (обычном ,НЕ Си++), используя символьные массивы : Если число отрицательных элементов масива А чётно,то...

Циклический сдвиг - C++
Ребята, в чем может быть проблема? Надо организовать ф-цию циклического сдвига вправо. ТО бишь x-&gt;y, y-&gt;z, z-&gt;x. Что я делаю не так? ...

Циклический сдвиг вправо - C++
Нужно сделать цеклический сдвиг машинного слова на 1 байт влево, через union и через побитовые операции. Вот так я пишу побитовый сдвиг ...

Циклический сдвиг матрицы - C++
Есть динамическая матрица, и есть обычный сдвиг на N элементов на право. как сделать сдвиг по рисунку? #include &lt;stdlib.h&gt; #include...


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

Или воспользуйтесь поиском по форуму:
Croessmah
Модератор
Эксперт CЭксперт С++
13052 / 7315 / 814
Регистрация: 27.09.2012
Сообщений: 18,052
Записей в блоге: 3
Завершенные тесты: 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     Циклический сдвиг битов!
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru