|
0 / 0 / 0
Регистрация: 07.01.2011
Сообщений: 281
|
|
Арифметические операции с двоичными числами22.03.2011, 18:48. Показов 17269. Ответов 34
Метки нет (Все метки)
Вопрос такой.
Вот задание: Двоичные числа (разбор строки, формирование строки, операции сложения, вычитания, разные варианты вывода строки). 1. Создать программный класс (или несколько связанных классов) на языке С++, которые реализуют заданные алгоритмы / функции (по вариантам). В классах реализовать конструкторы (деструкторы), инкапсуляцию (сокрытие закрытых атрибутов через методы доступа), по возможности – открытые и закрытые методы обработки, перегрузку операторов, реализовать абстрактный класс на базе обычного, выделить интерфейс и др. Может ли кто то мне помочь понять, что же я должен сделать. Вплане двоичных чисел. Это двоичный калькулятор или что? Что такое разбор строки. Кто будет классом и где инкапсуляция? Совсем чайник. Помогите пожалуйста. Код не надо, а именно концептууально, алгоритмически на примере.
0
|
|
| 22.03.2011, 18:48 | |
|
Ответы с готовыми решениями:
34
Выполнение арифметические действи над двоичными, восьмеричными или шестнадцатеричными числами (по блок-схеме) Арифметичиские операции над двоичными числами
|
|
Делаю внезапно и красиво
1313 / 1228 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
|
|
| 22.03.2011, 19:52 | |
|
Двоичные или двоично-десятичные числа?
Задано ли ограничение на длину числа? Сложение вычитание реализовать достаточно просто. Умножение и деление намного сложнее. Задача не однозначна. Либо это просто числа в строке вида "100101101", либо очень большие числа, превышающие размер регистра. В первом случае почитай про то, как происходит сложение целых чисел. Реализация тривиальна. Во втором - тоже гугли. Но будет оч сложно.
0
|
|
|
0 / 0 / 0
Регистрация: 07.01.2011
Сообщений: 281
|
|
| 22.03.2011, 20:06 [ТС] | |
|
По простому варианту.
Я понимаю сложение и вычитание я не понимаю что надо делать.
0
|
|
|
Делаю внезапно и красиво
1313 / 1228 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
|
|
| 22.03.2011, 20:09 | |
|
Для сложения:
1. Создать строку на один символ больше, чем самая длинная из двух складываемых строк; 2. Справа-налево читать символы в строках и суммировать. 3. Не забывать про перенос единицы.
0
|
|
|
0 / 0 / 0
Регистрация: 07.01.2011
Сообщений: 281
|
|
| 22.03.2011, 20:18 [ТС] | |
|
Вот это что такое:
1. Создать программный класс (или несколько связанных классов) на языке С++, которые реализуют заданные алгоритмы / функции (по вариантам). В классах реализовать конструкторы (деструкторы), инкапсуляцию (сокрытие закрытых атрибутов через методы доступа), по возможности – открытые и закрытые методы обработки, перегрузку операторов, реализовать абстрактный класс на базе обычного, выделить интерфейс и др.
0
|
|
|
Делаю внезапно и красиво
1313 / 1228 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
|
||||||
| 22.03.2011, 20:27 | ||||||
0
|
||||||
|
0 / 0 / 0
Регистрация: 07.01.2011
Сообщений: 281
|
|
| 22.03.2011, 21:10 [ТС] | |
|
Я читал основы ООП. Я не могу понять как тот же пример сложения двоичных чисел с этим связать.
0
|
|
|
Программист
119 / 97 / 11
Регистрация: 22.03.2011
Сообщений: 244
|
|
| 23.03.2011, 10:31 | |
|
Возьми, для примера, класс комплексных чисел из stl и разбери его.
Там есть всё: и инкапсуляция и перегрузка и шаблоны... По его подобию и разработай свой класс...
1
|
|
|
Делаю внезапно и красиво
1313 / 1228 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
|
|
| 23.03.2011, 11:02 | |
|
0
|
|
|
0 / 0 / 0
Регистрация: 07.01.2011
Сообщений: 281
|
|
| 24.03.2011, 18:45 [ТС] | |
|
Так что же делать?
0
|
|
|
Делаю внезапно и красиво
1313 / 1228 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
|
|
| 24.03.2011, 19:07 | |
|
0+0 = 0
0+1 = 1 1+0 = 1 1+1 = 0 (и перенос единицы в следующий разряд)
0
|
|
| 24.03.2011, 19:24 | |
|
А точно требуется всю эту двоичную арифметику реализовывать собственными силами? В задании четко об этом вроде не сказано.
Просто можно ввод и вывод осуществлять в виде строки, а сами значения в классе хранить в виде int или __int64 (ну опять же, если такое ограничение устраивает). И все операции выполнять с целыми числами. Ну, естественно, отслеживать регистр флагов. Так проще, мне кажется.
0
|
|
|
Делаю внезапно и красиво
1313 / 1228 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
|
|
| 24.03.2011, 19:30 | |
|
На С++ нет доступа к регистру флагов. На asm можно...
0
|
|
| 24.03.2011, 19:39 | |||||||
0
|
|||||||
|
Делаю внезапно и красиво
1313 / 1228 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
|
||||||
| 24.03.2011, 19:46 | ||||||
|
Тогда уж сразу
0
|
||||||
|
Делаю внезапно и красиво
1313 / 1228 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
|
||||||
| 24.03.2011, 20:07 | ||||||
|
Даже так, пожалуй.
Добавлено через 44 секунды А вобще, что там куда прибавляли, я даже не посмотрел.))) eax не регистр флагов.) Добавлено через 39 секунд Какую-то ерунду вообще написали... я...
0
|
||||||
| 24.03.2011, 20:13 | ||||||
И почему не решение проблемы? Возиться с двоичной арифметикой проще? Реализовывать тот же самый регистр флагов, пусть и не в полнои объеме.
0
|
||||||
|
Делаю внезапно и красиво
1313 / 1228 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
|
|
| 24.03.2011, 20:16 | |
|
0
|
|
| 24.03.2011, 20:17 | |
|
Не по теме: Чет это уже оффтоп
0
|
|
| 24.03.2011, 20:17 | |
|
Помогаю со студенческими работами здесь
20
Длинная арифметика: арифметические операции над числами
С помощью операторов выбора реализовать арифметические операции над двумя числами Структуры: арифметические операции (сложение, вычитание, умножение, деление) над комплексными числами 15. Создать класс LongLong для работы с целыми числами. Число должно быть представлено двумя полями.Реализовать арифметические операции Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Символьное дифференцирование
igorrr37 13.02.2026
/ *
Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2).
Унарный минус обозначается как !
*/
#include <iostream>
#include <stack>
#include <cctype>. . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|
|
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, то после закрытия окошка. . .
|