Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.56/9: Рейтинг темы: голосов - 9, средняя оценка - 4.56
0 / 0 / 0
Регистрация: 30.11.2013
Сообщений: 15
1

Как закодировать методом циклического сдвига?

08.12.2013, 21:44. Просмотров 1734. Ответов 2
Метки нет (Все метки)

Здравствуйте!
Вопрос такой, что представляет из себя кодировка методом циклического сдвига на 2 вправо чётных битов относительно нечётных битов asci-кодов символов с инверсий нечётных битов? И может ли кто показать, как приблизительно выглядит данное кодирование в c++?
Заранее спасибо!
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.12.2013, 21:44
Ответы с готовыми решениями:

Реализовать функции шифровки и дешифровки методом циклического сдвига битов
Даны текстовые файлы. Реализовать функции шифровки и дешифровки методом циклического сдвига битов...

Написать программы шифрования и расшифровки файла методом циклического сдвига
Написать программы шифрования и расшифровки файла методом циклического сдвига. Т.е. каждый символ...

Ошиба циклического сдвига
Вот задание. Дана действительная квадратная матрица порядка n. 1) осуществить циклический сдвиг...

Программа циклического сдвига элементов массива
Помогите!Срочно! Составить программу циклического сдвига элементов массива А(10) на 5 позиций...

2
1 / 1 / 1
Регистрация: 24.10.2013
Сообщений: 10
09.12.2013, 11:31 2
Лучший ответ Сообщение было отмечено Merf1n как решение

Решение

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
#include <iostream>
#include <conio.h>
using namespace std;
#include <math.h>
#include <string>
 
void main()
{
setlocale( LC_ALL,"Russian" );
int i, temp, k, Num;
string S1;
cout<<"Введите строку: ";
getline(cin,S1);
if (S1.empty())
{
    cout<<"Пустая строка"<<endl;
}
else 
{
if (S1.size()%2==0) k=S1.size();//Проверка длины строки
else k=S1.size()-1;//если длина - нечетное, то не учитываем последний элемент
for (i=0;i<k;i=i+2)//цикл замены местами
{
    temp=S1[i];
    S1[i]=S1[i+1];
    S1[i+1]=temp;
}
cout<<"Введите число для смещения кода: ";
cin>>Num;
for (i=0;i<S1.size();i++)//цикл смещения кода на указанное выше число
{
    S1[i]=S1[i]+Num;
}
cout<<"Зашифрованная строка: ";
cout<<S1<<endl;
cout<<"Дешифрованная строка: ";
for (i=0;i<S1.size();i++)//цикл смещения кода на указанное выше число (обратно)
{
    S1[i]=S1[i]-Num;
}
for (i=0;i<k;i=i+2)//цикл замены местами (обратно)
{
    temp=S1[i+1];
    S1[i+1]=S1[i];
    S1[i]=temp;
}
cout<<S1;
}
_getch();
}
Добавлено через 2 минуты
Как-то так)я не из PRO конечно, я только учусь, так что не держи зла на меня если не так)
1
0 / 0 / 0
Регистрация: 30.11.2013
Сообщений: 15
10.12.2013, 14:55  [ТС] 3
Спасибо
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.12.2013, 14:55

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Функция циклического сдвига побитово вправо
Форумчане, приветствую! Подскажите почему не работает сдвиг вправо? Программа компилируется, но...

Матрицы: определить номера строк, совпадающих полностью или в результате циклического сдвига
Элементами целочисленной матрицы являются 0 или 1. Определить: - номера строк, совпадающих...

Ввести число и вывести результат циклического сдвига его битов на 1 разряд влево
Проверьте пожалуйста, правильное ли решение. Ввести число и вывести результат циклического сдвига...

Вывести результат последовательного применения циклического сдвига вправо заданной последовательности k раз
Циклическим сдвигом вправо последовательности называется последовательность, получаемая из исходной...


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

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

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