Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
 Аватар для Iostream
0 / 0 / 0
Регистрация: 16.06.2013
Сообщений: 30

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

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

Реализация битовых операций
IntA=10; A=A&amp;0F; A=A|03; A=A&lt;&lt;1 Чему будет равно A?

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

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

4
654 / 575 / 164
Регистрация: 13.12.2012
Сообщений: 2,124
21.06.2013, 16:47
у Вас вывод в 10ичном виде

Добавлено через 3 минуты
Цитата Сообщение от Iostream Посмотреть сообщение
C++
1
cout.setf (ios::hex, ios::hex) ;
заментите на
C++
1
cout.setf(ios::hex, std::ios::basefield );
1
Администратор
Эксперт .NET
 Аватар для tezaurismosis
9673 / 4825 / 763
Регистрация: 17.04.2012
Сообщений: 9,664
Записей в блоге: 14
21.06.2013, 16:54
Только 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  [ТС]
Цитата Сообщение от aLarman Посмотреть сообщение
Код C++
1
cout.setf(ios::hex, std::ios::basefield );
Спасибо вам, всё получилось. Если не затруднит объясните почему нужно было так ввести, а не как в учебнике? Я так понимаю, это связано с тем, что в учебнике старый компилятор, а сейчас многое изменилось потому, что это уже не 1-й пример, где нужно было менять код...

Добавлено через 23 минуты
Цитата Сообщение от tezaurismosis Посмотреть сообщение
Только printf, только хардкор
Видимо не только)). Вариант, aLarman' a тоже правильный. А какой и когда правильней, есть ли разница? Если есть, объясните пожалуйста.
0
Администратор
Эксперт .NET
 Аватар для tezaurismosis
9673 / 4825 / 763
Регистрация: 17.04.2012
Сообщений: 9,664
Записей в блоге: 14
23.06.2013, 16:23
Цитата Сообщение от Iostream Посмотреть сообщение
А какой и когда правильней, есть ли разница? Если есть, объясните пожалуйста.
Так как вы пишите на C++, то правильней вариант @aLarman, я же использую printf, использующийся в C, но для совместимости может использоваться и в C++
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
23.06.2013, 16:23
Помогаю со студенческими работами здесь

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

Корректное написание логических операций
Скоро экзамен по информатике, созрел вопрос - как корректнее писать логическое И и ИЛИ в С++? И: and или &amp;&amp; ИЛИ: or или || ...

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

Округление используя элементарных логических операций
У меня есть следующий код Нужно переписать этот код и выполнить округление до ближайшего целого с помощью элементарных логических...

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


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru