|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
06.05.2017, 21:36 | #1 |
Пользователь
Регистрация: 04.05.2017
Сообщений: 10
|
Сложение, вычитание, умножение, деление используя СС
Я надеюсь это у меня последний вопрос по системе счисления, короче перейдем к вопросу. Вопрос таков как можно складывать, вычитать, умножать и делить используя систему счисления. Программа у меня переводит в другие системы но не складывает, вычитает и т. п. так как нужно. Вот пример сложения в двоичной СС:
Как должен вычитать: 110111+10001=1001000 Как вычитает у меня программа: 110111+10001=120112 Вот исходник: Calc.7z |
07.05.2017, 08:09 | #2 |
Я самый любопытный
Участник клуба
Регистрация: 24.07.2012
Сообщений: 1,949
|
Код:
Образец: http://newerow1989.narod.ru/publ/slo...hisel/1-1-0-27 |
07.05.2017, 09:16 | #3 | |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
Цитата:
ввели число - программа сразу преобразовала его из нужной СС в десятичную. ввели второе число - программа сразу преобразовала его из нужной СС в десятичную. выбрали действие - программа выполнила сложение (вычитание, умножение, деление) и полученный результат перевела в нужную СС. т.е. фактически, где у Вас стоит X := StrToInt(Edit1.Text); (если у Вас strtofloat - то замените его) меняйте на Код:
Edit1.Text := IntToStr(X); меняете на Код:
Никаких "костылей" для вычислений в двоичном, восьмеричном и шестнадцатеричном виде не понадобится. Теперь идея понятна? |
|
07.05.2017, 18:44 | #5 |
Пользователь
Регистрация: 04.05.2017
Сообщений: 10
|
Так я до сих пор туплю, на сколько я понял вы хотите чтоб я вычитал по такому алгоритму:
1. Перевести числа в десятичную систему счисления 2. Выполнить действие 3. Перевести результат обратно в исходную систему счисления Но мне нужно чтоб так же функционировал как "Калькулятор Windows" Вложение 87853 Вот функция, может её можно как то поправить? Код:
|
07.05.2017, 18:46 | #6 |
Пользователь
Регистрация: 04.05.2017
Сообщений: 10
|
Мне не нужно чтоб он вычислял длинные числа, мне нужно чтоб он мог использовать любые арифметические действия с выбранным СС (в моем случае 2, 8, 10, 16 СС)
|
08.05.2017, 11:09 | #7 | ||
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
Цитата:
или просто не можете понять смысл того, что я предлагаю? вот, конкретно, тут что непонятного? Цитата:
ладно. видимо, не дано мне донести свои мысли до Вас. берите готовый код: Unit1_pas.rar |
||
09.05.2017, 19:45 | #8 |
Пользователь
Регистрация: 04.05.2017
Сообщений: 10
|
Можно последний вопрос, ваш Unit конечно рабочий (и спасибо вам за это) но там появился один минус , калькулятор не выводит отрицательные числа и нули при сложении или вычитании, это можно как то исправить?
|
09.05.2017, 22:29 | #9 | |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
Цитата:
откройте виндузовый калькулятор, перейдите в режим "Программист" и введите любое отрицательное число. А потом переключите в другую СС. думаю, что будете немного удивлены. Но, если не брать во внимание представление отрицательных чисел и Вас устроит просто знак "-" в начале, то предлагаю такую модификацию: Код:
Последний раз редактировалось Serge_Bliznykov; 09.05.2017 в 22:32. |
|
09.05.2017, 23:15 | #10 |
Пользователь
Регистрация: 04.05.2017
Сообщений: 10
|
Спасибо, вам, за помощь!)
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Сложение, вычитание, умножение полиномов | _Лето_ | Общие вопросы C/C++ | 0 | 08.12.2013 01:25 |
Написать программу, выполняющую по выбору сложение, вычитание, умножение или деление нацело двух многоразрядных чисел. | dmitriy20104 | Паскаль, Turbo Pascal, PascalABC.NET | 1 | 20.08.2012 19:12 |
Уважаемые программисты, отзовитесь. (С++) Арифметические действия для комплексных чисел (сложение, вычитание, умножение и деление) | Meurtre | Помощь студентам | 4 | 19.12.2011 01:15 |
ВЫчитание, умножение и деление массивов на С++ | Flood | Помощь студентам | 2 | 15.05.2010 16:54 |
Сложение, вычитание, деление, умножение в Turbo Debugger | GaJIbI4 | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 9 | 08.03.2010 15:23 |