Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
Iostream
0 / 0 / 0
Регистрация: 16.06.2013
Сообщений: 30
#1

Выполнение битовых логических операций

20.06.2013, 18:16. Просмотров 696. Ответов 4
Метки нет (Все метки)

Вот такой пример:
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
// BitTest — инициируются две переменные и
// выводятся результаты выполнения
// операторов ~,&,| и ^
#include <stdio.h>
#include <iostream>
using namespace std;
int main(int nArq, char* pszArgs[])
{
// установка вывода в шестнадцатеричном виде
cout.setf (ios::hex, ios::hex) ;
// инициализация двух аргументов
int nArq1 = 0x1234;
int nArq2 = 0x00ff;
// Выполнение логических операций
// Сначала применяем унарный оператор NOT
cout<< "Arq1=0x"<<nArq1<<"\n";
cout<< "Arq2=0x"<<nArq2<<"\n";
cout<< "~Arq1=0x"<<~nArq1<<"\n";
cout<< "~Arq2=0x"<<~nArq2<<"\n";
//Теперь бинарные операторы
cout<<"nArq1&nArq2=0x"
    <<(nArq1&nArq2)
    <<"\n";
cout<<"nArq1|nArq2=0x"
    <<(nArq1|nArq2)
    <<"\n";
cout<<"nArq1^nArq2=0x"
    <<(nArq1^nArq2)
    <<"\n";
return 0;
}

В учебнике ответ на (картинке) внизу, у меня получилось то, что (на картинке) вверху.
Выполнение битовых логических операций

В чем проблема?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.06.2013, 18:16
Ответы с готовыми решениями:

Реализация битовых операций в Си++
По теме: Реализация битовых операций в Си++. Даны два неравных числа: n и m,...

Объясните перебор всех значений от 0 до n с помощью битовых операций
for (int i = (1 &lt;&lt; n) - 1; i &gt;= 0; i--) { for (int j = 0; j &lt; n; j++) {...

Описание логических операций
Добрый вечер! Имеется задача по выведению закрашиваемых областей на кругах...

Корректное написание логических операций
Скоро экзамен по информатике, созрел вопрос - как корректнее писать логическое...

Перегрузка побитовых логических операций
Всем привет! Хотел спросить, можно ли как нибудь перегрузить логическую...

4
aLarman
644 / 565 / 164
Регистрация: 13.12.2012
Сообщений: 2,112
Завершенные тесты: 1
21.06.2013, 16:47 #2
у Вас вывод в 10ичном виде

Добавлено через 3 минуты
Цитата Сообщение от Iostream Посмотреть сообщение
C++
1
cout.setf (ios::hex, ios::hex) ;
заментите на
C++
1
cout.setf(ios::hex, std::ios::basefield );
1
tezaurismosis
Администратор
Эксперт .NET
8481 / 3808 / 723
Регистрация: 17.04.2012
Сообщений: 8,507
Записей в блоге: 14
21.06.2013, 16:54 #3
Только printf, только хардкор
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <cstdio>
 
int main() {
    // инициализация двух аргументов
    int nArq1 = 0x1234;
    int nArq2 = 0x00ff;
    // Выполнение логических операций
    // Сначала применяем унарный оператор NOT
    printf("nArq1 = %#x\n", nArq1);
    printf("nArq2 = %#x\n", nArq2);
    printf("~nArq1 = %#x\n", ~nArq1);
    printf("~nArq2 = %#x\n", ~nArq2);
    //Теперь бинарные операторы
    printf("nArq1 & nArq2 = %#x\n", nArq1 & nArq2);
    printf("nArq1 | nArq2 = %#x\n", nArq1 | nArq2);
    printf("nArq1 ^ nArq2 = %#x\n", nArq1 ^ nArq2);
    return 0;
}
0
Iostream
0 / 0 / 0
Регистрация: 16.06.2013
Сообщений: 30
23.06.2013, 14:53  [ТС] #4
Цитата Сообщение от aLarman Посмотреть сообщение
Код C++
1
cout.setf(ios::hex, std::ios::basefield );
Спасибо вам, всё получилось. Если не затруднит объясните почему нужно было так ввести, а не как в учебнике? Я так понимаю, это связано с тем, что в учебнике старый компилятор, а сейчас многое изменилось потому, что это уже не 1-й пример, где нужно было менять код...

Добавлено через 23 минуты
Цитата Сообщение от tezaurismosis Посмотреть сообщение
Только printf, только хардкор
Видимо не только)). Вариант, aLarman' a тоже правильный. А какой и когда правильней, есть ли разница? Если есть, объясните пожалуйста.
0
tezaurismosis
Администратор
Эксперт .NET
8481 / 3808 / 723
Регистрация: 17.04.2012
Сообщений: 8,507
Записей в блоге: 14
23.06.2013, 16:23 #5
Цитата Сообщение от Iostream Посмотреть сообщение
А какой и когда правильней, есть ли разница? Если есть, объясните пожалуйста.
Так как вы пишите на C++, то правильней вариант @aLarman, я же использую printf, использующийся в C, но для совместимости может использоваться и в C++
1
23.06.2013, 16:23
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.06.2013, 16:23

Калькулятор логических/арифметических операций(подробности внутри)
1ый курс одного электротехнического вуза! Суть программы, которую нужно...

Где почитать про перегрузку поразрядных логических операций (|, &, ^)
Здравствуйте. Подскажите пособие, где как можно подробно описывается перегрузка...

Построение многослойного персептрона для вычисления результатов логических операций (xor)
Сижу уже несколько дней. Подскажите что не так с кодом. Заранее спасибо ...


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

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

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