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

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

13.09.2024, 11:58. Показов 1691. Ответов 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
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
13.09.2024, 11:58
Ответы с готовыми решениями:

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

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

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

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

17
590 / 490 / 101
Регистрация: 05.08.2022
Сообщений: 2,672
13.09.2024, 12:31 2
А сейчас программа разве не работает? или какая проблема?
0
Модератор
Эксперт С++
13727 / 10923 / 6479
Регистрация: 18.12.2011
Сообщений: 29,155
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
462 / 329 / 64
Регистрация: 09.03.2016
Сообщений: 3,249
14.09.2024, 18:24 4
После побитовых операций это не символы.
Или надо думать, какие делать операции.
Долго думать.

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

Добавлено через 4 минуты
Цитата Сообщение от Azawa Посмотреть сообщение
string S= "
Цитата Сообщение от zss Посмотреть сообщение
S[i]
Будет один байт.
(string же)...
А в string_и можно мусора напихать?
Это ничего?
Я обычно с char работаю...
0
462 / 329 / 64
Регистрация: 09.03.2016
Сообщений: 3,249
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
3719 / 2648 / 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
3719 / 2648 / 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
73 / 74 / 17
Регистрация: 11.06.2018
Сообщений: 269
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
590 / 490 / 101
Регистрация: 05.08.2022
Сообщений: 2,672
16.09.2024, 07:34 14
Цитата Сообщение от Azawa Посмотреть сообщение
Написать программу которая будет выполнять побитовое операцию между символами двух строк
Откуда взялось именно про строки?

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

Не по теме:

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

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

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



Добавлено через 6 минут
Цитата Сообщение от Azawa Посмотреть сообщение
Вот но теперь код не компилируется, пишет неожиданный символ ^. В чём может быть проблема?
Компилируется. Буквально этот текст программы.
0
73 / 74 / 17
Регистрация: 11.06.2018
Сообщений: 269
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
73 / 74 / 17
Регистрация: 11.06.2018
Сообщений: 269
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
73 / 74 / 17
Регистрация: 11.06.2018
Сообщений: 269
16.09.2024, 17:23 18
Цитата Сообщение от Azawa Посмотреть сообщение
Ну ладно ablex, думал чушь какую-то несёт.
Я жду извинений и официального обращения к администрации об удалении оскорбительного отзыва.
Это можно сделать через красную треугольную кнопку напротив моего сообщения.
0
16.09.2024, 17:23
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
16.09.2024, 17:23
Помогаю со студенческими работами здесь

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

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

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
18
Закрытая тема Создать тему
Новые блоги и статьи
Как написать микросервис на Go/Golang с Kafka и GitHub CI/CD
InfoMaster 14.01.2025
Определение микросервиса, преимущества использования Go/ Golang Микросервис – это архитектурный подход к разработке программного обеспечения, при котором приложение состоит из небольших, независимо. . .
Как написать микросервис с нуля на C# с RabbitMQ, CQRS и CI/CD
InfoMaster 14.01.2025
В современном мире разработки программного обеспечения микросервисная архитектура стала стандартом де-факто для создания масштабируемых и гибких приложений. Этот архитектурный подход предполагает. . .
Как создать интернет-магазин на PHP и JavaScript
InfoMaster 14.01.2025
В современном мире электронная коммерция стала неотъемлемой частью бизнеса. Создание собственного интернет-магазина открывает широкие возможности для предпринимателей, позволяя достичь большей. . .
Как написать Тетрис на Ассемблере
InfoMaster 14.01.2025
Тетрис – одна из самых узнаваемых и популярных компьютерных игр, созданная в 1984 году советским программистом Алексеем Пажитновым. За прошедшие десятилетия она завоевала симпатии миллионы людей по. . .
Как создать игру "Танчики" на Unity3d и C#
InfoMaster 14.01.2025
Разработка игр – это увлекательный процесс, сочетающий в себе творчество и технические навыки. В этой статье мы рассмотрим создание классической игры "Танчики" с использованием Unity3D и языка. . .
Организую платный онлайн микро-курс по доработке Android-клиента Telegram
_Ivana 14.01.2025
Официальная версия и распространенные форки не полностью устраивают? Сделай свою кастомную версию клиента! 4 занятия по 2 часа (2 недели пн, ср 19:00-21:00 по Москве). Первое вводное занятие. . .
Как создать приложение для фитнеса для iOS/iPhone на Kotlin
InfoMaster 14.01.2025
Создание собственного фитнес-приложения — это не только захватывающий, но и полезный процесс, ведь оно может стать вашим верным помощником на пути к здоровому и активному образу жизни. В современных. . .
Как создать приложение магазина для iOS/iPhone на Swift
InfoMaster 14.01.2025
Введение в разработку iOS-приложений Разработка приложений для iPhone и других устройств на базе iOS открывает огромные возможности для создания инновационных мобильных решений. В данной статье мы. . .
Это работает. Скорость асинхронной логики велика. Вопрос видимо останется в стабильности. Плата - огонь!
Hrethgir 13.01.2025
По прошлому проекту в Logisim Evolution https:/ / www. cyberforum. ru/ blogs/ 223907/ blog8781. html прилагаю файл архива проекта в Gowin Eda. Восьмибитный счётчик из сумматора+ генератор сигнала. . .
UserScript для подсветки кнопок языков программировани­­­­я в зависимости от текущего раздела
volvo 13.01.2025
В результате работы этого скрипта подсвечиваются нужные кнопки не только в форме быстрого ответа, но и при редактировании сообщения: / / ==UserScript== / / @name CF_DefaultLangSelect / / . . .
Введение в модели и алгоритмы машинного обучения
InfoMaster 12.01.2025
Машинное обучение представляет собой одну из наиболее динамично развивающихся областей искусственного интеллекта, которая фокусируется на разработке алгоритмов и методов, позволяющих компьютерам. . .
Как на Python создать нейросеть для решения задач
InfoMaster 12.01.2025
В контексте стремительного развития современных технологий особое внимание уделяется таким инструментам, как нейросети. Эти структуры, вдохновленные биологическими нейронными сетями, используются для. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru