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

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

Войти
Регистрация
Восстановить пароль
 
Москаленко
0 / 0 / 0
Регистрация: 02.12.2013
Сообщений: 4
#1

Ребят, нужно написать программу шифровки циклическим сдвигом - C++

02.12.2013, 23:10. Просмотров 318. Ответов 1
Метки нет (Все метки)

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

Пожалуйста кто может!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.12.2013, 23:10     Ребят, нужно написать программу шифровки циклическим сдвигом
Посмотрите здесь:
C++ Определить, является ли одна последовательность циклическим сдвигом другой
C++ Является ли первая строка циклическим сдвигом второй строки
Массивы (циклическим сдвигом переместить найденный элемент на последнюю позицию) C++
Расшифровка строки (циклическим сдвигом букв латинского алфавита на n символов) C++
Написать программу с циклическим процессом C++
Нужно написать программу в которой нужно проверять условия в текстовом файле C++
Составить программу шифровки и дешифровки текста C++
C++ Есть масив, нужно удалить некоторые елементы, со сдвигом
Составить программу шифровки и дешифровки данного текста по правилу C++
C++ Разработать программу работы с деком, организованным в массиве с циклическим заполнением и смещением
C++ Нужно написать программу на с++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ПерС
371 / 287 / 89
Регистрация: 05.11.2013
Сообщений: 820
Записей в блоге: 5
Завершенные тесты: 1
03.12.2013, 10:13     Ребят, нужно написать программу шифровки циклическим сдвигом #2
ну вот те функция описанного сдвига байта и ее тест (на обычном Си с stdio, чтоб 16-ричный ответ показать)
вторая функция (shift2) вертает всё взад
применяй ко всем нужным байтам файла и обрящешь
тест проверяет кодирование всех возможных байтов с кодами 0-255 взад и вперед так что должно быть ОК
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
#include <stdio.h>
 
unsigned char shift1 (unsigned char b) {
 unsigned char bit=b&0x08?1:0;
 unsigned char right=((b<<1)&0x0E)|bit;
 bit=b&0x10?0x80:0;
 unsigned char left=bit|((b>>1)&0x70);
 return ~(left|right);
}
unsigned char shift2 (unsigned char b) {
 b=~b;
 unsigned char bit=b&0x80?0x10:0;
 unsigned char left=((b<<1)&0xE0)|bit;
 bit=b&0x01?0x08:0;
 unsigned char right=bit|((b>>1)&0x07);
 return left|right;
}
int main() {
 unsigned char c,c1,c2; int i,bad=0;
 for (i=0; i<256; i++) {
  c=(unsigned char)i;
  c1=shift1(c);
  c2=shift2(c1);
  if (c2!=c) {
   printf ("\n%c (0x%02X) => %c (0x%02X) => %c (0x%02X)",c,c,c1,c1,c2,c2);
   bad++;
  }
 }
 if (!bad) printf ("\nВСЕ ВЕРНО");
 else printf ("\nНЕВЕРНЫХ БАЙТ: %d",bad);
 fflush(stdin);
 getchar();
 return 0;
}
Yandex
Объявления
03.12.2013, 10:13     Ребят, нужно написать программу шифровки циклическим сдвигом
Ответ Создать тему
Опции темы

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