Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
Sviatospam
0 / 0 / 0
Регистрация: 28.11.2012
Сообщений: 27
#1

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

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

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

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

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

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

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

Циклический сдвиг битов
Создайте функцию, которая перемещает биты для unsigned int на заданное число...

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

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

Циклический сдвиг битов в байте
Привет. Мне нужно в байте (unsigned char) произвести циклический сдвиг. Как я...

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

8
Avazart
Эксперт С++
7719 / 5628 / 549
Регистрация: 10.12.2010
Сообщений: 25,341
Записей в блоге: 17
18.01.2013, 20:53 #2
std::bitset<>;
std::rotate<>();
0
Sviatospam
0 / 0 / 0
Регистрация: 28.11.2012
Сообщений: 27
18.01.2013, 20:59  [ТС] #3
Мне нужно именно этим методом.

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

Добавлено через 7 минут
Мне непонятна запись 0xE0. Что она означает?
0
Avazart
Эксперт С++
7719 / 5628 / 549
Регистрация: 10.12.2010
Сообщений: 25,341
Записей в блоге: 17
18.01.2013, 21:14 #6
Цитата Сообщение от Sviatospam Посмотреть сообщение
Мне непонятна запись 0xE0. Что она означает?
В 16- системе число E0 т.е 224dec
0
Croessmah
++Ͻ
14540 / 8300 / 1559
Регистрация: 27.09.2012
Сообщений: 20,368
Записей в блоге: 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));
}
1
Sviatospam
0 / 0 / 0
Регистрация: 28.11.2012
Сообщений: 27
18.01.2013, 21:23  [ТС] #8
Большое спасибо)

Добавлено через 6 минут
А как организовать функцию декодирования?
0
Croessmah
++Ͻ
14540 / 8300 / 1559
Регистрация: 27.09.2012
Сообщений: 20,368
Записей в блоге: 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));
}
1
18.01.2013, 21:35
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.01.2013, 21:35

Циклический сдвиг битов в байте влево или вправо
Кто-нибудь пробовал реализовать такую задачу на С++. Если да, то какой...

Осуществить циклический сдвиг битов в целом числе a на k позиций вправо
Осуществить циклический сдвиг битов в целом числе a на k позиций вправо.

Циклический сдвиг
Ребята, в чем может быть проблема? Надо организовать ф-цию циклического сдвига...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

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