3 / 3 / 1
Регистрация: 29.05.2013
Сообщений: 226
|
|
1 | |
Калькулятор в любой системе счисления24.04.2014, 17:51. Показов 12659. Ответов 19
Метки нет (Все метки)
Добрый день. Нужно сделать калькулятор в 2-16ричной системе счисления. Проблема в том, что вычислять можно только напрямую, без перевода в другую систему и обратно. Есть какой-нибудь универсальный способ вычисления?
0
|
24.04.2014, 17:51 | |
Ответы с готовыми решениями:
19
Калькулятор в любой системе счисления Калькулятор: выполнение арифметических операций в любой системе счисления Перевод из любой системы счисления в любую другую систему счисления (2-36) Проверить корректность числа в заданной системе счисления и перевести в другую систему счисления |
3 / 3 / 1
Регистрация: 29.05.2013
Сообщений: 226
|
|
24.04.2014, 17:59 [ТС] | 3 |
Ну обычно, сначала число переводят в десятичную форму, выполняют арифметические операции, и потом обратно в исходную форму. А мне нужно чтобы вычислял напрямую.
0
|
Заблокирован
|
|
24.04.2014, 18:05 | 4 |
тебе на "табло" твоего калка нужен правильный ответ в выбранной системе исчисления или же ты думаешь вычислять даже все значение в своих системах исчисления? Если последнее - я тебя огорчу, любой существующий ЭВМ производит все операции в двоичном виде, вне зависимости от их типа в языке программирования
0
|
3 / 3 / 1
Регистрация: 29.05.2013
Сообщений: 226
|
|
24.04.2014, 18:08 [ТС] | 5 |
На табло нужен правильный. Но препод сказал чтобы без перевода в другие системы счисления...
0
|
3 / 3 / 1
Регистрация: 29.05.2013
Сообщений: 226
|
|
24.04.2014, 18:11 [ТС] | 7 |
0
|
Заблокирован
|
|
24.04.2014, 18:19 | 8 |
А что - пойдёшь на украину бэнэров гасить
А Если серьёзно, то ты наверное задание не правильно понял, что ты думаешь, ты ввёл в своём калькуляторе: 10001011011101 умножить на 10000001000001 и в С++ будет функция, умножить бинарно? Какую бы ты переменную не завёл, int, char, DWORD и тд, они все хранят в себе одно значение, представить это значение можно в любой системе, но операции над числами процессор будет производить в бинарном виде, думаю архитектура процессоров тебя не интересует
0
|
3 / 3 / 1
Регистрация: 29.05.2013
Сообщений: 226
|
|
24.04.2014, 18:36 [ТС] | 9 |
Поздно, уже учения на границе проводим. В течении одной двух недель думаю разберутся с Украиной.
Что-то я запутался. Программа должна выглядеть так: я выбираю систему счисления - например пятеричную, потом выбираю операцию (+-*/), далее выбираю второе число в этой же системе, и получаю ответ. Мне чётко сказали, что не примут, если я переведу например эту пятеричную систему в десятичную, выполню операции в ней и переведу обратно. Каким образом можно это осуществить?
0
|
1943 / 1768 / 825
Регистрация: 23.01.2014
Сообщений: 6,230
|
|
24.04.2014, 18:53 | 10 |
Тебе задали задание написать программу, которая бы в ЛЮБОЙ системе счисления выполняла операции сложения\вычитания\умножения\деления без перевода даже в двоичную систему счисления? Ты докторскую пишешь что ли?
0
|
3 / 3 / 1
Регистрация: 29.05.2013
Сообщений: 226
|
|
24.04.2014, 18:56 [ТС] | 11 |
Не в любой, от двоичной до 16ричной, до 20 цифр после запятой. Нет, первый курс второй семестр. Вот так примерно должна "выглядить" http://numsys.ru/?flavour=full. Только без перевода.
0
|
24.04.2014, 20:21 | 12 |
Я хочу всем напомнить, что все численные переменные в программе хранятся в двоичной и только в двоичной системе. То, что вы видете десятичные цифры на экране во время работы с программой - это текст. То есть функции ввода-вывода преобразуют двоичную переменную из памяти в десятичную строку в неком текстовом буфере, а затем этот буфер выводят на экран. Недаром функция носит название printf! "формат"! То есть она форматирует данные в строку перед выводом на экран.
поэтому имеет смысл говорить только о преобразовании двоичных чисел в n-ричные строки.
0
|
3 / 3 / 1
Регистрация: 29.05.2013
Сообщений: 226
|
|
24.04.2014, 20:29 [ТС] | 13 |
Есть какое-нибудь общее правило арифметических операций для n-ичных систем? Я просто не могу понять как написать такую программу, что типа выбирается система, например 7, и и дальше использовать свич, и в 7ичной системе писать цикл вычисления именно в этой системе?
0
|
Заблокирован
|
|
24.04.2014, 20:37 | 14 |
ты не догоняешь, о чём тебе говорят. На языке программирования ты можешь писать переменные в различных системах, но операции на центральном процессоре всё равно будут производится в двоичном виде, про полупроводники слыхал?
Твоя задача калькулятора состоит в том, чтоб юзер ввёл в какой то систему цифру, ты бы эту строку распарсил и преобразовал к какую - то переменную, произвёл бы действие и результат преобразовал в исходную систему и отобразил бы результирующюю строку на экране
1
|
3 / 3 / 1
Регистрация: 29.05.2013
Сообщений: 226
|
|
24.04.2014, 20:41 [ТС] | 15 |
Нет я понял про двоичный. Что значит распарсил строку? Хорошо, допустим вводит пользователь число 4234, в пятеричной системе. Что мне дальше нужно сделать программно?
0
|
Заблокирован
|
|
24.04.2014, 20:49 | 16 |
что что, получить из этой строки цифры и далее перевести эти цифры из 5-ричной системы в любую (http://digteh.ru/digital/PreobDig.php), доступную компилятору, чтоб не извращаться - в 10-ичную или 16-ричную, сделать необходимые преобразования и преревести обратно в твою систему исходную - далее в строку и на экран
0
|
3 / 3 / 1
Регистрация: 29.05.2013
Сообщений: 226
|
|
24.04.2014, 21:38 [ТС] | 17 |
0
|
1943 / 1768 / 825
Регистрация: 23.01.2014
Сообщений: 6,230
|
|
24.04.2014, 21:53 | 18 |
Конечно есть. Скажу больше - оно одинаковое для всех систем счисления. В случае пятеричной, например 4+4. Так как в пятеричной системе счисления максимум четверка используется из цифр, то происходит перенос единицы в старший разряд, а текущий обнуляется, то есть 4+1 = 10, и еще 3 остается итого 4+4 = 13. Это точно также как и в десятичной. При умножении/делении немного сложнее, но принципы все те же, да и потом любое умножение сводится к набору сумм.. Но писать все эти функции (умножение, деление, сумма, разность) для любой системы счисления... по-моему это муторно и неинтересно =)
0
|
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
|
||||||
24.04.2014, 22:17 | 19 | |||||
Если я все правильно понял, то вот решение в котором реализовано сложение.
Только учти что это я толком не тестировал, в любом случае его еще нужно доработать, обязательно сделать проверку на значения, которые вводит пользователь.
0
|
3 / 3 / 1
Регистрация: 29.05.2013
Сообщений: 226
|
|
24.04.2014, 22:24 [ТС] | 20 |
Дело не в этом, просто через годик есть возможность попасть на военную кафедру и на выходе буду лейтенант.
0
|
24.04.2014, 22:24 | |
24.04.2014, 22:24 | |
Помогаю со студенческими работами здесь
20
Перевод из любой системы счисления в десятичную Перевести число из любой системы счисления (2, 8, 16) в десятичную Перевод числа из любой системы счисления в десятичную Калькулятор в двоичной системе Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |