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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.80
.::.DIMA.::.
143 / 143 / 4
Регистрация: 26.10.2008
Сообщений: 782
#1

Написать программу, которая демонстрирует выполнение операций с 12-разрядными двоичными числами - C++

24.02.2009, 23:20. Просмотров 1357. Ответов 8
Метки нет (Все метки)

У меня такое задание:
Написать программу, которая демонстрирует выполнение операций с 12-разрядными
двоичными числами. Аргументы операций задаются в двоичном виде с помощью двух
рядов кнопок – одна кнопка соответствует одному биту аргумента. Операция выбирается
из выпадающего списка. Реализовать следующие операции: ADD, SUB, AND, OR, XOR.
Организовать, также, показ аргументов и результата выполнения операции в виде текста
следующего вида:
0101 0000 1001
AND
1110 0110 1111
Equals
0100 0000 1001
Требуется написать диалоговое MFC-приложение.
Программирую на C++.
В общем, я даже не представляю, как это можно сделать в консоли, не говоря об MFC.
Преподаватель сказал, что нужно создать ряд кнопок, какого вида я не представляю, под ним Combo Box, для выбора операции и т.д. Что за ADD, SUB, AND, OR, XOR затруднился ответить даже он.
Если кто-нибудь знает, как это сделать, подскажите, пожалуйста.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.02.2009, 23:20
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Написать программу, которая демонстрирует выполнение операций с 12-разрядными двоичными числами (C++):

Написать программу для работы с двоичными числами (сумма, вычитание, умножение и деление) - C++
Доброго времени суток. Задание такое: Разработать программный продукт для осуществления арифметических операций над двоичными числами. При...

Выполнение арифметические действи над двоичными, восьмеричными или шестнадцатеричными числами (по блок-схеме) - C++
Написать программу, позволяющую выполнять арифметические действия над двоичными, восьмеричными или шестнадцатеричными числами. Систему...

Класс MyMath обеспечивающий выполнение операций сравнения над двумя вещественными числами - C++
Класс должен включать в себя поля x и y (числа, над которыми выполняются операции), а также следующие методы: • bool isequal() –...

Составить описание класса выполнение операций над натуральными числами в двоичной системе счисления - C++
Помогите, пожалуйста. Составить описание класса выполнение операций над натуральными числами в двоичной системе счисления:сложение,...

Разработать класс MyMath, обеспечивающий выполнение операций сравнения над двумя вещественными числами - C++
Класс должен включать в себя поля x и y (числа, над которыми выполняются операции), а также следующие методы: • bool isequal() –...

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

8
Humanitis
174 / 166 / 6
Регистрация: 12.01.2009
Сообщений: 430
24.02.2009, 23:39 #2
ADD-сложение
SUB-вычитание
AND-логическое И
OR-логическое ИЛИ
XOR-исключающее ИЛИ
0
accept
4828 / 3249 / 165
Регистрация: 10.12.2008
Сообщений: 10,569
25.02.2009, 00:53 #3
C++
1
2
3
4
5
6
7
8
9
10
 
#include <stdio.h>
 
/* примеры операций с битами */
main()
{
    printf("120 - 8 = %d\n", 120 & ~(1 << 3));
    printf("5 bits of 120 = %d\n", 120 & ~(~0 << 5));
    return 0;
}
0
.::.DIMA.::.
143 / 143 / 4
Регистрация: 26.10.2008
Сообщений: 782
26.02.2009, 00:21  [ТС] #4
Я думаю что побитовые операции здесь не подойдут.
Можно привести пример с
"AND-логическое И
OR-логическое ИЛИ
XOR-исключающее ИЛИ"
Если со сложением и вычитанием понятно, то с этими операциями не знаю.
В условии сказано про12-разрядные числа, в примере эти числа разбиты по 4. Там один ряд понимать как одно число или разные? И каким видом кнопки это иожно представить при реализации в MFC?
0
accept
4828 / 3249 / 165
Регистрация: 10.12.2008
Сообщений: 10,569
26.02.2009, 01:10 #5
побитовые операции ещё называют поразрядными
12-разрядное число, это 12-битное число
тебе надо, чтобы кнопка запускала функцию, которая выполняет операцию
12-разрядное число можно хранить в 16-разрядном или 32-разрядном, то есть хватит unsigned short int
можно хранить по памяти, а можно выделить подмножество бит с помощью битовых полей

Код
struct {
    unsigned int num : 12;
} s;
& - побитовое И
| - побитовое ИЛИ
^ - побитовое исключающее ИЛИ
~ - побитовое НЕ
0
Humanitis
174 / 166 / 6
Регистрация: 12.01.2009
Сообщений: 430
26.02.2009, 10:15 #6
Если будешь хранить 12битное число в 16 или 32битном. То после каждой операции делай зануление старших бит.
0
.::.DIMA.::.
143 / 143 / 4
Регистрация: 26.10.2008
Сообщений: 782
10.03.2009, 00:49  [ТС] #7
Попробовал сделать это со структурой – выводит числа, но не в двоичном коде, но результат вроде верный.
Как сделать, чтобы выводилось в двоичном коде?
И как при реализации в MFC сделать, чтобы при нажатии кнопки, значение какой-нибудь переменной менялось на 1, если значение 0, и на 0, если 1?
0
accept
4828 / 3249 / 165
Регистрация: 10.12.2008
Сообщений: 10,569
10.03.2009, 01:02 #8
значение какой-нибудь переменной менялось на 1, если значение 0, и на 0, если 1?
C
1
2
3
4
5
/* ChangeFlag:  меняет значение флага */
void ChangeFlag(void)
{
    flags.section = flags.section != 1;
}
Как сделать, чтобы выводилось в двоичном коде?
11111111 разделяешь на 1111 1111 с правой стороны
1111 == 0xF
1111 == 0xF
значит
11111111 == 0xFF

Например:
число 25, переводим в 16ричную, 16+9 == 0x19
0x19 == 0001 1001
значит
25 == 11001
1
.::.DIMA.::.
143 / 143 / 4
Регистрация: 26.10.2008
Сообщений: 782
17.03.2009, 10:47  [ТС] #9
Спасибо, вы очень помогли.
0
17.03.2009, 10:47
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.03.2009, 10:47
Привет! Вот еще темы с ответами:

Написать программу, которая инициализирует элементы массива нечетными целыми числами от 0 до 20 - C++
Кто знает как решить задачу на С++ при помощи массивов? Написать программу, которая инициализирует элементы массива нечетными целыми...

Написать программу которая бы заполняла одномерный массив (в 40 элементов) рандомными числами. - C++
Всем доброго времени суток. Задание у меня следующее: Нужно написать программу которая бы заполняла одномерный массив (в 40 элементов)...

работа с 64-разрядными числами в 32-разрядной системе - C++
Добрый вечер! Как лучше работать с 64-разрядными числами? Использовать long long и double? Через string уж больно муторно, особенно с...

Написать программу, которая запрашивает размерность двумерного массива, заполняет его случайными числами от 5 до 15 и находит максимальный элемент в м - C++
Написать программу, которая запрашивает размерность двумерного массива, заполняет его случайными числами от 5 до 15 и находит максимальный...


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

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

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