Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.96/47: Рейтинг темы: голосов - 47, средняя оценка - 4.96
0 / 0 / 0
Регистрация: 09.07.2016
Сообщений: 3
1

Перевести числа в другую систему счисления рекусивной функцией

10.07.2016, 10:54. Показов 9699. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
1) Написать рекурсивную процедуру для перевода числа из двоичной системы счисления в десятичную.

2) Написать рекурсивную процедуру для перевода числа из шестнадцатеричной системы счисления в десятичную.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.07.2016, 10:54
Ответы с готовыми решениями:

Проверить корректность числа в заданной системе счисления и перевести в другую систему счисления
На вычислительной практике дали такое задание: С клавиатуры вводятся 2 положительных целых...

Как перевести дробную часть числа в другую систему счисления?
Можете подсказать как переводить дробную часть в любую СС(систему счисление). using System; ...

Перевести число в другую систему счисления
система счисления – ВОСЬМЕРИЧНАЯ 1) Переведите число 71 из десятичной в ВОСЬМЕРИЧНУЮ 2)...

Перевести число в другую систему счисления.
Перевести число а из восьмеричной в шестнадцатиричную систему счисления. a=706,21

Перевод дробной части числа из десятичной системы счисления в любую другую систему счисления
Здравствуйте как перевести дробной части числа из десятичной системы счисления в любую другую...

4
Эксперт NIX
2795 / 2038 / 682
Регистрация: 02.03.2015
Сообщений: 6,509
15.07.2016, 08:36 2
Например так?
Python
1
2
3
4
5
6
7
8
9
10
11
def todec(number):
    if isinstance(number, int):
        number = str(number)
    if not all(x in '01' for x in number):
        return "Wrong input"
    line = number.lstrip('0')
    if len(line) <= 1:
        return int(number)
    else:
        line = line[1:]
        return 2 ** len(line) + todec(line)
Ну с 16 попробуйте сами.
2
0 / 0 / 0
Регистрация: 09.07.2016
Сообщений: 3
15.07.2016, 13:42  [ТС] 3
Спасибо, но не работает для двоичных чисел оканчивающихся на ноль.
И само решение должно быть, как мне кажется легче и проще.
В качестве примера перевод из десятичной системы в двоичную выглядит так:
Python
1
2
3
4
def printBin(n):
    if n == 0: return
    printBin (n//2)
    print (n % 2, end = "")
0
563 / 303 / 189
Регистрация: 20.05.2016
Сообщений: 592
15.07.2016, 17:36 4
Лучший ответ Сообщение было отмечено Kristobal как решение

Решение

Kristobal, совсем без проверок здесь никак... В 7 строке опечатка: if len(line) <= 1:

Добавлено через 12 минут
Умял как мог (Marinero, простите)
Python
1
2
3
4
5
def todec(n):
   n = str(n)
   if not n: return 0
   if n[0] not in '01': raise ValueError
   return (2 ** (len(n)-1)) * (n[0] == '1') + todec(n[1:])
или чуть-чуть иначе
Python
1
2
3
4
5
def horner(n):
    n = str(n)
    if not n: return 0
    if n[-1] not in '01': raise ValueError
    return horner(n[:-1]) * 2 + (n[-1]=='1')
1
0 / 0 / 0
Регистрация: 09.07.2016
Сообщений: 3
15.07.2016, 21:20  [ТС] 5
Спасибо!
0
15.07.2016, 21:20
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.07.2016, 21:20
Помогаю со студенческими работами здесь

Перевести код с Pascal на C#. Перевод в другую систему счисления
Напишите программу перевода десятичного числа в систему счисления с другим основанием Помогите...

Перевести целую и дробную часть числа из 10-й системы счисления в 15-ю систему счисления?
Как в С++ перевести целую и дробную часть числа 10-й системы счисления в 15-ю систему счисления?

Перевести целие числа из деятичной системы счисления в систему счисления с любым другим основанием
Помогите. Сделал чтоб переводило из 10 в 1,2,3,4,5,6,7,8,9 .Вся проблема в том что я незнаю как...

Перевести числа из 10 системы счисления в троичную систему счисления.
Такая вот проблемка нужно перевести числа из 10 системы счисления в троичную систему счисления....

Подскажите, как можно перевести в другую систему счисления очень большое число
Есть длинная последовательность цифр, которая намного превышает по размеру даже long. Нужно...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru