Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/9: Рейтинг темы: голосов - 9, средняя оценка - 4.56
Отпрыск ChatGPT
31 / 28 / 4
Регистрация: 18.06.2019
Сообщений: 143
1

Побитовые операции между символами двух строк

13.09.2024, 11:58. Показов 1682. Ответов 17
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Написать программу которая будет выполнять побитовое операцию между символами двух строк

Помогите решить
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <string>
#include <iostream>
#include <clocale>
using namespace std;
 
int main() {
setlocale(LC_ALL,".UTF-8");
string M = "hello";
string S= "\x12\x16\x1f\x4c\xbf\xd3\xb5\xd2\xbd\xea\x49";
 
for(int i = 0; i<S.size();i++) S[i] &= M[i % M.size()];
cout << S << '\n';
return 0;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.09.2024, 11:58
Ответы с готовыми решениями:

Побитовые операции (подсчитать количество парных нулевых битов, расположенных строго между единичными)
Как подсчитать кол-во парных нулевых битов, расположенных строго между единичными?

Слияние двух коротких чисел в одно длинное с условием (побитовые операции)
Даны 2 коротких неотрицательных числа a и b. Произвести слияние этих чисел в длинное...

Слияние двух коротких чисел в одно длинное с условием (побитовые операции)
Даны 2 коротких неотрицательных числа a и b. Произвести слияние этих чисел в длинное...

Побитовые логические операции и операции смещения
Составить две программы, первая из которых вводит составные части структуры данных и формирует из...

17
573 / 475 / 99
Регистрация: 05.08.2022
Сообщений: 2,598
13.09.2024, 12:31 2
А сейчас программа разве не работает? или какая проблема?
0
Модератор
Эксперт С++
13698 / 10902 / 6471
Регистрация: 18.12.2011
Сообщений: 29,105
13.09.2024, 13:13 3
KSergey9, думаю проблема в том, что после побитовых операций в строке S
окажутся совершенно непредсказуемые коды, которые никак не вывести в виде символов.
И, если где-то получится ноль, то остальная часть вообще не выведется.
Т.е. вместо
Цитата Сообщение от Azawa Посмотреть сообщение
cout << S << '\n';
Надо что-то вроде
C++
1
2
3
for(int i = 0; i<S.size();i++) 
    cout << (unsigned int)S[i] << ' ';
cout<<endl;
1
452 / 319 / 64
Регистрация: 09.03.2016
Сообщений: 3,119
14.09.2024, 18:24 4
После побитовых операций это не символы.
Или надо думать, какие делать операции.
Долго думать.

Добавлено через 1 минуту
Цитата Сообщение от zss Посмотреть сообщение
(unsigned int)S[i]
А почему оно должно быть четырёхбайтовое целое?
UTF8 то однобайтовое, то двух...
Английское однобайтовое...

Добавлено через 4 минуты
Цитата Сообщение от Azawa Посмотреть сообщение
string S= "
Цитата Сообщение от zss Посмотреть сообщение
S[i]
Будет один байт.
(string же)...
А в string_и можно мусора напихать?
Это ничего?
Я обычно с char работаю...
0
452 / 319 / 64
Регистрация: 09.03.2016
Сообщений: 3,119
14.09.2024, 18:44 5
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <stdint.h>
#include <iostream>
 
int main()
{
    uint8_t mass[128]{};
    std::string M = "hello";
    std::string S = "\x12\x16\x1f\x4c\xbf\xd3\xb5\xd2\xbd\xea\x49";
 
    for (int i = 0; i < S.size(); i++) {
        S[i] &= M[i % M.size()];
        mass[i] = S[i];
    }
    for (int i = 0; i < S.size(); i++)
        std::printf("%u,", mass[i]);
    
    getchar();
    return 0;
}
Название: NewPicture14.png
Просмотров: 179

Размер: 3.3 Кб
Как то так. Я ещё забыл спросить - А за каким?
0
Отпрыск ChatGPT
31 / 28 / 4
Регистрация: 18.06.2019
Сообщений: 143
15.09.2024, 03:47  [ТС] 6
вот
Миниатюры
Побитовые операции между символами двух строк  
0
zss
15.09.2024, 07:50
  #7
 Комментарий модератора 
Azawa, каков смысл Вашего последнего сообщения?
Во-первых, оно не добавило ничего нового,
а во-вторых нарушило ряд правил:
П. 1.4 Официальными языками форума являются русский и английский языки. Размещение сообщений на других языках запрещено.
П. 5.18 Запрещено размещать задания, ошибки, коды программ и решения в виде картинок (кроме формул и блок-схем) и других файлов с их текстом.
0
Отпрыск ChatGPT
31 / 28 / 4
Регистрация: 18.06.2019
Сообщений: 143
15.09.2024, 11:13  [ТС] 8
zss, приношу извинения форумом пользуюсь нечасто.

Там в общем написано тоже самое думала я может где-то проглядел текст задания. по формуле S (x) M что это вообще может значить, вроде исключающее или?

Я попробовал так
C++
1
S[i] ^= M[i % M.size()];
Но сейчас у меня ошибка компиляции
0
3697 / 2647 / 761
Регистрация: 29.06.2020
Сообщений: 9,800
15.09.2024, 11:55 9
Azawa,
⊕ - это операция исключающее ИЛИ. В С++ - ^.
Что вы творите в коде, вообще не понятно.
И что ожидается, тоже.

Единственная приходящая в голову интерпретация : шифрование сообщения по ключу.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
#include <string>
#include <iomanip>
 
int main(){
   using std::string;
   string M = "hello";
   string S= "\x12\x16\x1f\x4c\xbf\xd3\xb5\xd2\xbd\xea\x49";
   for(int i = 0; i != M.size(); ++i) 
      M[i] ^=  S[i%S.size()];
 
   for(auto ch : M)
      std::cout << std::setw(2) << std::setfill('0') << std::hex << unsigned((unsigned char)(ch)) << ' ';
}
Но в конкретной постановке задачи и входными данным, даже эта интерпретация не выдерживает никакой критики

Добавлено через 10 минут

Не по теме:

Цитата Сообщение от zss Посмотреть сообщение
cout << (unsigned int)S[i] << ' ';
Попробуйте отрицательное число вывести подобным образом.
Вы же знаете что по умолчанию, символы представлены типом char, которое может быть однобайтовым со знаком ?

2
Отпрыск ChatGPT
31 / 28 / 4
Регистрация: 18.06.2019
Сообщений: 143
15.09.2024, 20:55  [ТС] 10
SmallEvil, ну я как понял, исходная строка в кодировке UTF-8. Она побитово XOR закодирована ключом M. Нужно обратно её раскодировать так же побитово, в результате должна получиться UTF-8 строка, которую нужно вывести в консоль. Если что код не мой
Да я понял, единственное что я думал это значок побитовое И, спасибо. Вот поправил код вроде должно быть так:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <string>
#include <iostream>
#include <clocale>
using namespace std;
 
int main() {
    setlocale(LC_ALL, ".UTF-8");
    string M = "hello";
    string S = "\x12\x16\x1f\x4c\xbf\xd3\xb5\xd2\xbd\xea\x49";
 
    for (int i = 0; i < S.size(); i++) {
        S[i] ^= M[i % M.size()];
    }
 
    cout << S << '\n';
    return 0;
}
Вот но теперь код не компилируется, пишет неожиданный символ ^. В чём может быть проблема?
0
3697 / 2647 / 761
Регистрация: 29.06.2020
Сообщений: 9,800
15.09.2024, 21:30 11
Цитата Сообщение от Azawa Посмотреть сообщение
исходная строка в кодировке UTF-8.
Почему ?
Даже если она в UTF-8, работать с такой строкой посимвольно - сложно.
А не посимвольно - бессмысленно.

Цитата Сообщение от Azawa Посмотреть сообщение
Она побитово XOR закодирована ключом M.
Почему строка М вдруг стала ключом ? Если в ней открытое слово, а в строке S, как раз таки разнообразные байты ?

Цитата Сообщение от Azawa Посмотреть сообщение
в результате должна получиться UTF-8 строка, которую нужно вывести в консоль.
Но в задании нужно вывести не раскодированную строку, а результат кодирования.
По по каким именно правилам должна обрабатываться трока, в задании нет.
Если же выводить закодированную, тогда в этом смысла нет, так как там могут быть управляющие символы, которые нельзя отобразить.

Цитата Сообщение от Azawa Посмотреть сообщение
Вот но теперь код не компилируется, пишет неожиданный символ ^.
Ничего подобного в С++ не может быть.
0
20 / 62 / 13
Регистрация: 11.06.2018
Сообщений: 218
15.09.2024, 21:48 12
Цитата Сообщение от Azawa Посмотреть сообщение
Вот но теперь код не компилируется, пишет неожиданный символ ^. В чём может быть проблема?
Компилируется.

Цитата Сообщение от Azawa Посмотреть сообщение
Она побитово XOR закодирована ключом M. Нужно обратно её раскодировать так же побитово, в результате должна получиться UTF-8 строка, которую нужно вывести в консоль.
Всё так и там выводится оскорбление модератора. Как только он это поймет, то кому-то прилетит санкция.

Добавлено через 16 минут
Azawa, самое время сказать откуда у тебя это задание и как так получилось, что в нем упомянут известный всем модератор?
Мое предположение: это тебе такая месть от твоего наставника, чтобы ты не ходил за помощью на форум и решал задачи сам. Если это так, то я ему просто похлопаю. Гениально.
1
Отпрыск ChatGPT
31 / 28 / 4
Регистрация: 18.06.2019
Сообщений: 143
16.09.2024, 02:25  [ТС] 13
ablex, к сожалению я так не смог собрать программу. Если у вас получилось, не затруднит скинуть проект я посмотрю?

Добавлено через 29 минут

Не по теме:

Если честно не понял что вы имеете в виду, похоже на бред. К форуму и модераторам хорошо отношусь ничего против не имею. Форум лучший в ру сегменте :good: Ну во всяком случае так считаю я и знакомые, люди с которыми учусь. если у вас какое-то другое мнение ну ваше право, только не понимаю к чему оно тут



Добавлено через 16 секунд

Не по теме:

Если честно не понял что вы имеете в виду, похоже на бред. К форуму и модераторам хорошо отношусь ничего против не имею. Форум лучший в ру сегменте :good: Ну во всяком случае так считаю я и знакомые, люди с которыми учусь. если у вас какое-то другое мнение ну ваше право, только не понимаю к чему оно тут

0
573 / 475 / 99
Регистрация: 05.08.2022
Сообщений: 2,598
16.09.2024, 07:34 14
Цитата Сообщение от Azawa Посмотреть сообщение
Написать программу которая будет выполнять побитовое операцию между символами двух строк
Откуда взялось именно про строки?

Добавлено через 7 минут

Не по теме:

Цитата Сообщение от ablex Посмотреть сообщение
Если это так, то я ему просто похлопаю. Гениально.
Очевидно, что именно так всё и есть.
Студни явно уже задолбали приносить готовые решения с этого форума.

Про оригинал.
Я почему-то думал, что уезжающие в европейские учебные заведения очень мотивированы, грызут изо-всех сил гранит науки и всё такое. А вот поди ж ты.

Хотя да, оригинал оказался полезен верным уточнением относительно требуемой битовой операции



Добавлено через 6 минут
Цитата Сообщение от Azawa Посмотреть сообщение
Вот но теперь код не компилируется, пишет неожиданный символ ^. В чём может быть проблема?
Компилируется. Буквально этот текст программы.
0
20 / 62 / 13
Регистрация: 11.06.2018
Сообщений: 218
16.09.2024, 14:25 15
Цитата Сообщение от Azawa Посмотреть сообщение
Если честно не понял что вы имеете в виду, похоже на бред. К форуму и модераторам хорошо отношусь ничего против не имею.
Что непонятного? Твой препод, или кто там дает тебе задания, зашифровал оскорбление модератора в тексте задания.
И сделал он это, вероятно, чтобы отвадить тебя от халявной помощи на форуме.

За шизофазический бред, конечно, спасибо. Но я был бы признателен, если бы ты извинился. А также написал администрации с просьбой удалить свой глупый отзыв в моём профиле.
Доказать мои слова очень просто.
1) Берем текст из твоего поста #10: https://www.cyberforum.ru/post17397558.html
2) Вставляем в любой онлайн-компилятор, поддерживающий UTF-8;
3) Видим расшифрованный текст, содержащий оскорбление.
Например: https://wandbox.org/permlink/2LFPdhk6QcEV2ooD

Сразу обращаюсь к администрации, товарищ Azawa вынудил меня запостить эту ссылку. Также прошу убедиться, что текст по ссылке побуквенно соответствует тексту из поста Azawa #10, а зашифрованная строка побуквенно соответствует тексту с фотографии задания из поста #6.
0
20 / 62 / 13
Регистрация: 11.06.2018
Сообщений: 218
16.09.2024, 14:52 16
Цитата Сообщение от Azawa Посмотреть сообщение
Если у вас получилось, не затруднит скинуть проект я посмотрю?
Azawa.zip
0
Отпрыск ChatGPT
31 / 28 / 4
Регистрация: 18.06.2019
Сообщений: 143
16.09.2024, 17:20  [ТС] 17
Мда... У меня нет слов. Звучит как бред. Ну ладно ablex, думал чушь какую-то несёт. Но сам запустил убедился, сверил строчки. Выводит:
Код
zss лох!
zss прости. Буду спрашивать с того кто переслал задание. Ну а так всем спасибо кто помог. Только похоже всё зря было. Ещё убедиться оно настоящим до меня дошло или нет, а то заново придётся делать, только потратил своё и ваше время.
1
20 / 62 / 13
Регистрация: 11.06.2018
Сообщений: 218
16.09.2024, 17:23 18
Цитата Сообщение от Azawa Посмотреть сообщение
Ну ладно ablex, думал чушь какую-то несёт.
Я жду извинений и официального обращения к администрации об удалении оскорбительного отзыва.
Это можно сделать через красную треугольную кнопку напротив моего сообщения.
0
16.09.2024, 17:23
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.09.2024, 17:23
Помогаю со студенческими работами здесь

Побитовые логические операции и операции смещения
Составить две программы, первая из которых вводит составные части структуры данных, приведенных в...

побитовые операции/операции с битами
Написать шифр который знак на две половины(4 + 4 бита) , в первой половине биты разделить на две...

Удалить данные, которые находятся между символами \ \ вместе с этими символами
Здравствуйте. Подскажите, пожалуйста, регулярку для того, чтобы удалить данные, которые находятся...

Побитовые операции
Здравствуйте уважаемые читатели форума! СОвсем не представляю как сделать простейшую програмку на...

побитовые операции
помогите решить задачи на http://tchikh.dyndns.org/8-02-13.pdf Во всех задачах нельзя использовать...

Побитовые операции
Есть код, который флаг получает. Флаги хранятся в int. Мне кажется что я где-то допустил ошибку....

побитовые операции в си
Дано короткое целое неотрицательное число. Заменить каждую входящую в его состав ...


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

Или воспользуйтесь поиском по форуму:
18
Закрытая тема Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru