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

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

Войти
Регистрация
Восстановить пароль
 
 
alex-net
3 / 3 / 1
Регистрация: 27.11.2012
Сообщений: 173
#1

Строки. Произвести над каждым символом операцию побитового И - C++

26.12.2012, 23:52. Просмотров 781. Ответов 15
Метки нет (Все метки)

Ввести в консоли строку из пяти символов, а затем произвести над каждым символом операцию побитового И (AND – в C++ &) со вторым операндом равным 11010111, вывести полученные символы на экран.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.12.2012, 23:52     Строки. Произвести над каждым символом операцию побитового И
Посмотрите здесь:
Произвести над каждым символом строки операцию побитового И, со вторым операндом равным 11010111. C++
Найти сумму двух не знаковых чисел, а затем провести операцию побитового «И» над суммой и вторым числом C++
Из заданной пользователем строки сформулируйте новую, добавив пробел перед каждым символом строки кроме пробела C++
C++ обработка строки. Рядом с каждым символом написать какое-либо количество таких же символов
C++ Написать функцию, реализующую операцию побитового xor
Произвести вставку слова «не» перед каждым третьим словом в предложении C++
C++ Провести операцию эквивалентности над двоичными числами
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
asidorchenko
379 / 205 / 25
Регистрация: 09.04.2012
Сообщений: 635
27.12.2012, 00:51     Строки. Произвести над каждым символом операцию побитового И #2
11010111 должна программа преобразовать ?
alex-net
3 / 3 / 1
Регистрация: 27.11.2012
Сообщений: 173
27.12.2012, 00:56  [ТС]     Строки. Произвести над каждым символом операцию побитового И #3
Думаю, да
HighPredator
5474 / 1840 / 342
Регистрация: 10.12.2010
Сообщений: 5,431
Записей в блоге: 3
27.12.2012, 00:58     Строки. Произвести над каждым символом операцию побитового И #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
 
using namespace std;
 
int main()
{
    char s[6];
    cin>>s;
    for(int i=0;i<5;i++) s[i]=s[i] & 0xD7;// 11010111
    cout<<s;
    getchar();
    return 0;
}
alex-net
3 / 3 / 1
Регистрация: 27.11.2012
Сообщений: 173
27.12.2012, 01:03  [ТС]     Строки. Произвести над каждым символом операцию побитового И #5
Не могли бы объяснить программу, если несложно, не совсем понятно, что здесь происходит. Потому что я и задание не понял.
HighPredator
5474 / 1840 / 342
Регистрация: 10.12.2010
Сообщений: 5,431
Записей в блоге: 3
27.12.2012, 01:11     Строки. Произвести над каждым символом операцию побитового И #6
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
 
using namespace std;
 
int main()
{
    char s[6];
    cin>>s;//Ввести в консоли строку из пяти символов
    for(int i=0;i<5;i++) s[i]=s[i] & 0xD7;// 11010111 //произвести над каждым символом операцию побитового И
    cout<<s;//вывести полученные символы на экран
    getchar();
    return 0;
}
Маленькое пояснение: в шестнадцатиричной СС указанное число будет равно D7 (если ничего не перепутал).
alex-net
3 / 3 / 1
Регистрация: 27.11.2012
Сообщений: 173
27.12.2012, 01:16  [ТС]     Строки. Произвести над каждым символом операцию побитового И #7
Спасибо!
alex-net
3 / 3 / 1
Регистрация: 27.11.2012
Сообщений: 173
10.01.2013, 10:07  [ТС]     Строки. Произвести над каждым символом операцию побитового И #8
Вот это что означает?
C++
1
 & 0xD7;
Пaтрик
415 / 390 / 38
Регистрация: 21.01.2012
Сообщений: 972
Завершенные тесты: 1
10.01.2013, 11:28     Строки. Произвести над каждым символом операцию побитового И #9
alex-net, битовая операция И
alex-net
3 / 3 / 1
Регистрация: 27.11.2012
Сообщений: 173
10.01.2013, 11:34  [ТС]     Строки. Произвести над каждым символом операцию побитового И #10
Цитата Сообщение от Пaтрик Посмотреть сообщение
alex-net, битовая операция И
я понял, а конкретней?
Пaтрик
415 / 390 / 38
Регистрация: 21.01.2012
Сообщений: 972
Завершенные тесты: 1
10.01.2013, 11:45     Строки. Произвести над каждым символом операцию побитового И #11
http://tinyurl.com/8khbjy9
alex-net
3 / 3 / 1
Регистрация: 27.11.2012
Сообщений: 173
10.01.2013, 23:34  [ТС]     Строки. Произвести над каждым символом операцию побитового И #12
Да нет ребят, чего то я недопонимаю, объясните мне эту строку плиз:
C++
1
for(int i=0;i<5;i++) s[i]=s[i] & 0xD7;
asidorchenko
379 / 205 / 25
Регистрация: 09.04.2012
Сообщений: 635
15.01.2013, 14:13     Строки. Произвести над каждым символом операцию побитового И #13
11010111 это 0xD7. 0x значит что число шестнадцатеричное. Чтобы из двоичного числа получить шестндацатеричное нужно разбить его на битовые четверки и каждую четверку заменить на шестнадцатеричное значение битовой четверки.

for(int i=0;i<5;i++) это оператор цикла. Сперва объявляется локальная для данного цикла переменная i, которая называется счетчиком (итератором). Производится инициализация счетчика значением 0. Значение счетчика сравнивается с десятичным 5 ( см. i<5) При начале оператора значение i равно 0, 0<5 является верным. Поэтому выполняется оператор s[i]=s[i] & 0xD7;, который над каждым элементом массива проводит операцию ПОБИТОВОЕ И с 11010111.

Если убрать оператор цикла то код будет следующим

C++
1
2
3
4
5
s[0]=s[0] & 0xD7;
s[1]=s[1] & 0xD7;
s[2]=s[2] & 0xD7;
s[3]=s[3] & 0xD7;
s[4]=s[4] & 0xD7;
alex-net
3 / 3 / 1
Регистрация: 27.11.2012
Сообщений: 173
15.01.2013, 14:17  [ТС]     Строки. Произвести над каждым символом операцию побитового И #14
asidorchenko, Спасибо, все довольно подробно и понятно расписано, а D7 — это шестнадцатиричное число, так? (Как бы 137?)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.01.2013, 14:43     Строки. Произвести над каждым символом операцию побитового И
Еще ссылки по теме:
Провести операцию над множествами без использования стандартных алгоритмов C++
C++ Произвести математические операции над матрицами
C++ Написать программу на с++, которая выполняет операцию над матрицей целых чисел
C++ Нарисовать замкнутую ломаную линию по точкам, над каждым отрезком вывести длину
C++ Произвести вычисления над элементами одномерного массива

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

Или воспользуйтесь поиском по форуму:
asidorchenko
379 / 205 / 25
Регистрация: 09.04.2012
Сообщений: 635
15.01.2013, 14:43     Строки. Произвести над каждым символом операцию побитового И #15
Цитата Сообщение от alex-net Посмотреть сообщение
asidorchenko, Спасибо, все довольно подробно и понятно расписано, а D7 — это шестнадцатиричное число, так? (Как бы 137?)
D7 — это 11010111

Ввести в консоли строку из пяти символов, а затем произвести над каждым символом операцию побитового И (AND – в C++ &) со вторым операндом равным 11010111, вывести полученные символы на экран.
Yandex
Объявления
15.01.2013, 14:43     Строки. Произвести над каждым символом операцию побитового И
Ответ Создать тему
Опции темы

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