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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 64, средняя оценка - 4.66
nikozavr
0 / 0 / 0
Регистрация: 07.01.2011
Сообщений: 281
#1

Арифметические операции с двоичными числами - C++

22.03.2011, 18:48. Просмотров 8579. Ответов 34
Метки нет (Все метки)

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


Может ли кто то мне помочь понять, что же я должен сделать. Вплане двоичных чисел.
Это двоичный калькулятор или что?
Что такое разбор строки.
Кто будет классом и где инкапсуляция?

Совсем чайник. Помогите пожалуйста. Код не надо, а именно концептууально, алгоритмически на примере.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.03.2011, 18:48
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Арифметические операции с двоичными числами (C++):

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

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

Арифметические операции над действительными числами согласно условию - C++
Даны действительные числа x и y. Если оба числа положительны и ни одно из них не принадлежит отрезку , то оба числа разделить на 2, иначе...

Структуры: арифметические операции (сложение, вычитание, умножение, деление) над комплексными числами - C++
Написать программу, реализующую арифметические операции (сложение, вычитание, умножение, деление), над комплексными числами. Использовать...

15. Создать класс LongLong для работы с целыми числами. Число должно быть представлено двумя полями.Реализовать арифметические операции - C++
Добрый вечер,вот задание: Создать класс LongLong для работы с целыми числами из 64 бит. Число должно быть представлено двумя полями: long...

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

34
Deviaphan
Делаю внезапно и красиво
Эксперт С++
1306 / 1221 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
22.03.2011, 19:52 #2
Двоичные или двоично-десятичные числа?
Задано ли ограничение на длину числа?
Сложение вычитание реализовать достаточно просто. Умножение и деление намного сложнее.
Задача не однозначна. Либо это просто числа в строке вида "100101101", либо очень большие числа, превышающие размер регистра.
В первом случае почитай про то, как происходит сложение целых чисел. Реализация тривиальна.
Во втором - тоже гугли. Но будет оч сложно.
0
nikozavr
0 / 0 / 0
Регистрация: 07.01.2011
Сообщений: 281
22.03.2011, 20:06  [ТС] #3
По простому варианту.
Я понимаю сложение и вычитание я не понимаю что надо делать.
0
Deviaphan
Делаю внезапно и красиво
Эксперт С++
1306 / 1221 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
22.03.2011, 20:09 #4
Для сложения:
1. Создать строку на один символ больше, чем самая длинная из двух складываемых строк;
2. Справа-налево читать символы в строках и суммировать.
3. Не забывать про перенос единицы.
0
nikozavr
0 / 0 / 0
Регистрация: 07.01.2011
Сообщений: 281
22.03.2011, 20:18  [ТС] #5
Вот это что такое:
1. Создать программный класс (или несколько связанных классов) на языке С++, которые реализуют заданные алгоритмы / функции (по вариантам). В классах реализовать конструкторы (деструкторы), инкапсуляцию (сокрытие закрытых атрибутов через методы доступа), по возможности – открытые и закрытые методы обработки, перегрузку операторов, реализовать абстрактный класс на базе обычного, выделить интерфейс и др.
0
Deviaphan
Делаю внезапно и красиво
Эксперт С++
1306 / 1221 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
22.03.2011, 20:27 #6
C++
1
2
3
4
5
6
7
8
9
10
class BNum // Класс
{
public:
    BNum();// Конструктор
    ~BNum(); // ДЕструктор
 
    BNum & operator + ( const BNum &); // открытый метод
private://инкапсуляция как-бы
    std::string _str;//атрибут
};
Как бы, почитайте про основы ООП.)
0
nikozavr
0 / 0 / 0
Регистрация: 07.01.2011
Сообщений: 281
22.03.2011, 21:10  [ТС] #7
Я читал основы ООП. Я не могу понять как тот же пример сложения двоичных чисел с этим связать.
0
prZzZ
Программист
112 / 92 / 5
Регистрация: 22.03.2011
Сообщений: 235
23.03.2011, 10:31 #8
Возьми, для примера, класс комплексных чисел из stl и разбери его.
Там есть всё: и инкапсуляция и перегрузка и шаблоны...
По его подобию и разработай свой класс...
1
Deviaphan
Делаю внезапно и красиво
Эксперт С++
1306 / 1221 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
23.03.2011, 11:02 #9
Цитата Сообщение от prZzZ Посмотреть сообщение
Возьми, для примера, класс комплексных чисел из stl и разбери его...
Да вы, батенька, садист.)
0
nikozavr
0 / 0 / 0
Регистрация: 07.01.2011
Сообщений: 281
24.03.2011, 18:45  [ТС] #10
Так что же делать?
0
Deviaphan
Делаю внезапно и красиво
Эксперт С++
1306 / 1221 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
24.03.2011, 19:07 #11
0+0 = 0
0+1 = 1
1+0 = 1
1+1 = 0 (и перенос единицы в следующий разряд)
0
bigredcat
366 / 313 / 3
Регистрация: 24.02.2011
Сообщений: 1,512
Записей в блоге: 1
24.03.2011, 19:24 #12
А точно требуется всю эту двоичную арифметику реализовывать собственными силами? В задании четко об этом вроде не сказано.
Просто можно ввод и вывод осуществлять в виде строки, а сами значения в классе хранить в виде int или __int64 (ну опять же, если такое ограничение устраивает). И все операции выполнять с целыми числами. Ну, естественно, отслеживать регистр флагов. Так проще, мне кажется.
0
Deviaphan
Делаю внезапно и красиво
Эксперт С++
1306 / 1221 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
24.03.2011, 19:30 #13
На С++ нет доступа к регистру флагов. На asm можно...
0
bigredcat
366 / 313 / 3
Регистрация: 24.02.2011
Сообщений: 1,512
Записей в блоге: 1
24.03.2011, 19:39 #14
Цитата Сообщение от Deviaphan Посмотреть сообщение
На С++ нет доступа к регистру флагов. На asm можно...
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
unsigned eflags()
{
    unsigned u0 = 0xffffffff;
    unsigned u1 = 2;
    unsigned f;
    __asm
    {
        mov eax, u1
        add u0, eax
        pushfd
        pop eax
        mov f, eax
    }
    return f;
}
0
Deviaphan
Делаю внезапно и красиво
Эксперт С++
1306 / 1221 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
24.03.2011, 19:46 #15
Тогда уж сразу
C++
1
2
3
4
5
6
7
8
9
10
11
12
unsigned eflags()
{
    unsigned u0 = 0xffffffff;
 
    __asm
    {
        mov eax, 2
        add u0, eax
        pushfd
        pop eax
    }
}
или как-то так.
0
24.03.2011, 19:46
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.03.2011, 19:46
Привет! Вот еще темы с ответами:

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

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

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

Быстрые арифметические операции - C++
Здравствуйте. Я знаю, что в си++ есть понятие быстрых арифметических операций (не могу вспомнить термин). Т.е. не нужно писать i = i +1,...


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

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

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