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

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

Восстановить пароль Регистрация
 
alex-net
3 / 3 / 1
Регистрация: 27.11.2012
Сообщений: 171
26.12.2012, 23:52     Строки. Произвести над каждым символом операцию побитового И #1
Ввести в консоли строку из пяти символов, а затем произвести над каждым символом операцию побитового И (AND – в C++ &) со вторым операндом равным 11010111, вывести полученные символы на экран.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.12.2012, 23:52     Строки. Произвести над каждым символом операцию побитового И
Посмотрите здесь:

C++ Произвести математические операции над матрицами
Дано натуральное число. Произвести операции над его цифрами. C++
Произвести вставку слова «не» перед каждым третьим словом в предложении C++
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
Сообщений: 171
27.12.2012, 00:56  [ТС]     Строки. Произвести над каждым символом операцию побитового И #3
Думаю, да
HighPredator
 Аватар для HighPredator
5352 / 1735 / 320
Регистрация: 10.12.2010
Сообщений: 5,120
Записей в блоге: 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
Сообщений: 171
27.12.2012, 01:03  [ТС]     Строки. Произвести над каждым символом операцию побитового И #5
Не могли бы объяснить программу, если несложно, не совсем понятно, что здесь происходит. Потому что я и задание не понял.
HighPredator
 Аватар для HighPredator
5352 / 1735 / 320
Регистрация: 10.12.2010
Сообщений: 5,120
Записей в блоге: 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
Сообщений: 171
27.12.2012, 01:16  [ТС]     Строки. Произвести над каждым символом операцию побитового И #7
Спасибо!
alex-net
3 / 3 / 1
Регистрация: 27.11.2012
Сообщений: 171
10.01.2013, 10:07  [ТС]     Строки. Произвести над каждым символом операцию побитового И #8
Вот это что означает?
C++
1
 & 0xD7;
Пaтрик
 Аватар для Пaтрик
394 / 387 / 38
Регистрация: 21.01.2012
Сообщений: 972
Завершенные тесты: 1
10.01.2013, 11:28     Строки. Произвести над каждым символом операцию побитового И #9
alex-net, битовая операция И
alex-net
3 / 3 / 1
Регистрация: 27.11.2012
Сообщений: 171
10.01.2013, 11:34  [ТС]     Строки. Произвести над каждым символом операцию побитового И #10
Цитата Сообщение от Пaтрик Посмотреть сообщение
alex-net, битовая операция И
я понял, а конкретней?
Пaтрик
 Аватар для Пaтрик
394 / 387 / 38
Регистрация: 21.01.2012
Сообщений: 972
Завершенные тесты: 1
10.01.2013, 11:45     Строки. Произвести над каждым символом операцию побитового И #11
http://tinyurl.com/8khbjy9
alex-net
3 / 3 / 1
Регистрация: 27.11.2012
Сообщений: 171
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
Сообщений: 171
15.01.2013, 14:17  [ТС]     Строки. Произвести над каждым символом операцию побитового И #14
asidorchenko, Спасибо, все довольно подробно и понятно расписано, а D7 — это шестнадцатиричное число, так? (Как бы 137?)
asidorchenko
379 / 205 / 25
Регистрация: 09.04.2012
Сообщений: 635
15.01.2013, 14:43     Строки. Произвести над каждым символом операцию побитового И #15
Цитата Сообщение от alex-net Посмотреть сообщение
asidorchenko, Спасибо, все довольно подробно и понятно расписано, а D7 — это шестнадцатиричное число, так? (Как бы 137?)
D7 — это 11010111

Ввести в консоли строку из пяти символов, а затем произвести над каждым символом операцию побитового И (AND – в C++ &) со вторым операндом равным 11010111, вывести полученные символы на экран.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.01.2013, 15:27     Строки. Произвести над каждым символом операцию побитового И
Еще ссылки по теме:

C++ обработка строки. Рядом с каждым символом написать какое-либо количество таких же символов
C++ Провести операцию эквивалентности над двоичными числами
C++ Нарисовать замкнутую ломаную линию по точкам, над каждым отрезком вывести длину

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

Или воспользуйтесь поиском по форуму:
alex-net
3 / 3 / 1
Регистрация: 27.11.2012
Сообщений: 171
15.01.2013, 15:27  [ТС]     Строки. Произвести над каждым символом операцию побитового И #16
Спасибо большое!
Yandex
Объявления
15.01.2013, 15:27     Строки. Произвести над каждым символом операцию побитового И
Ответ Создать тему
Опции темы

Текущее время: 04:10. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru