Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
linuxubuntu
3 / 3 / 0
Регистрация: 06.11.2011
Сообщений: 55
#1

Работа с битовыми операциями - C++

18.02.2012, 13:20. Просмотров 702. Ответов 5
Метки нет (Все метки)

Реализовать функции шифрования и дешифрования строк. Принцип шифрования: на четыре бита слева каждого символа нало-жить 4-ёх битную маску (операция XOR), затем первый и третий би-ты слева поменять местами. После шифрования напечатать коды символов зашифрованной строки и полученную строку. Дешифровать результат и убедиться, что строка стала равна исходной.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.02.2012, 13:20
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Работа с битовыми операциями (C++):

Работа с битовыми операциями - C++
Дан массив целых чисел. Составить функцию unpack Char, которая принимает целую переменную типа unsigned и распаковывает из нее два символа....

Работа с битовыми операциями - C++
Дано целое число без знака. Реализовать алгоритм замены каждого четного бита на 0

Проблема с битовыми операциями - C++
Где-то баг...Вроде все правильно, но выводятся одни нули. Перепроверил уже раз 5. В чем ошибка? Вот задание: Составить прогу, которая...

Работа с Битовыми образами - C++
Всем привет! Подскажите пожалуйста какой функцией из контекста можно узнать координаты х и у в которых находится правый нижний угол...

Работа с битовыми операторами - C++
Здравствуйте, С Новым Годом! Решил за новогодние празники познакомиться с языком C++. Попалась на глаза книжка Стефана Р. Дэвиса "С++ для...

Работа с битовыми полями - C++
Добрый день. Не зная и не понимая подобного... Подскажите пожалуйста, как реализовать ввод класса(число+буква) при помощи битовых полей с...

5
Paporotnik
383 / 227 / 7
Регистрация: 06.07.2011
Сообщений: 512
18.02.2012, 14:11 #2
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
unsigned char code(unsigned char symbol) {
    unsigned char mask = 208; //1101 0000
    unsigned char maskedResult = symbol ^ mask;
    
    unsigned char firstBitMask = 128; //1000 0000
    unsigned char thirdBitMask = 32;  //0010 0000
    
    unsigned char firstSet = maskedResult & firstBitMask;
    unsigned char thirdSet = maskedResult & thirdBitMask;
    
    maskedResult = maskedResult & (~firstBitMask);
    maskedResult = maskedResult & (~thirdBitMask);
    
    maskedResult = maskedResult | (thirdSet<<2);
    maskedResult = maskedResult | (firstSet>>2);
    
    return maskedResult;
}
шифрация одного входного байта. остальное сам.
0
kravam
быдлокодер
1702 / 889 / 45
Регистрация: 04.06.2008
Сообщений: 5,498
18.02.2012, 14:27 #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
#include <string>
#include <algorithm>
#include <stdio.h>
using namespace std;
 
int main () {
 
 string str("stroka");
 cout<< str<<endl;
 transform (str.begin(), str.end(),str.begin(),[](char i) {return i^=0XFA;}); 
 cout<< str<<endl;;
 transform (str.begin(), str.end(),str.begin(),[](char i) {return i^=0XFA;}); 
 cout<< str;
 
 getchar (); 
 return 0;
}

Добавлено через 1 минуту
Это исключительно наложение маски
0
go
Эксперт С++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
18.02.2012, 14:28 #4
Цитата Сообщение от kravam Посмотреть сообщение
#include <iostream>
#include <string>
#include <algorithm>
Цитата Сообщение от kravam Посмотреть сообщение
#include <stdio.h>
Цитата Сообщение от kravam Посмотреть сообщение
getchar ();
Зачем смешивать? Не новичок уже ведь.
0
linuxubuntu
3 / 3 / 0
Регистрация: 06.11.2011
Сообщений: 55
18.02.2012, 18:38  [ТС] #5
а на чистом си каким образом с помощью операций << >> и т.д.
0
go
Эксперт С++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
18.02.2012, 18:42 #6
C
1
2
3
4
5
6
int* transform ( int* first1, int* last1, int* result, int (*op) (int ) )
{
  while (first1 != last1)
    *result++ = op(*first1++);  
  return result;
}
0
18.02.2012, 18:42
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.02.2012, 18:42
Привет! Вот еще темы с ответами:

работа с побитовыми операциями. - C++
помогите с задачкой.. Дан массив чисел. Определить сумму тех элементов массива, двоичные коды которых содержат единицу в битах 1 и 5....

Массивы. Работа с побитовыми операциями - C++
Помогите с программированием,пожалуйста!!!!!!!!!!!! Дан массив из беззнаковых чисел. Коды четных элементов массива сдвинуть на 2 разряда...

Структура Военкомат с битовыми полями - C++
Разработайте структуру, используя битовые поля для обозначения логических (битовых) значений. Структура Военкомат: Фамилия, Имя, Отчество,...

Класс для работы с битовыми векторами - C++
Створити клас Bitv для роботи з бітовими векторами довільної довжини. Бітовий вектор – послідовність значень, які можуть мати значення 0...


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

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

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