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

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

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

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

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

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

Произвести над каждым символом строки операцию побитового И, со вторым операндом равным 11010111. - C++
Ввести в консоли строку из пяти символов, а затем произвести над каждым символом операцию побитового И (AND – в C++ &) со вторым операндом...

Найти сумму двух не знаковых чисел, а затем провести операцию побитового «И» над суммой и вторым числом - C++
Два не знаковых целых числа вводятся с клавиатуры в десятичной системе исчисления. Найти их сумму, а затем провести операцию побитового «И»...

Из заданной пользователем строки сформулируйте новую, добавив пробел перед каждым символом строки кроме пробела - C++
Из заданной пользователем строки сформулируйте новую, добавив пробел перед каждым символом строки кроме пробела.Результат вывести на экран...

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

Написать функцию, реализующую операцию побитового xor - C++
дали задание не могу понять даже что делать подскажите по заданию литературу или сайт какой или ветку на форуме При написании...

Произвести вставку слова «не» перед каждым третьим словом в предложении - C++
Подскажите пожалуйста,как дать программе понять,что она наткнулась на пробел,я поискал и не нашел символа отвечающего за пробел...Хотел...

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

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

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

Провести операцию над множествами без использования стандартных алгоритмов - C++
Подскажите как провести операцию над множествами без использования стандартных алгоритмов: set_union (объединение), set_difference...

Произвести математические операции над матрицами - C++
Помогите пожалуйста! Дано квадратную матрицу А порядка n и вектор b с n елементами. Получить: а) (А^2) x b б) (A-E) × b Где Е - ...

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


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

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

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