Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.78/55: Рейтинг темы: голосов - 55, средняя оценка - 4.78
0 / 0 / 0
Регистрация: 19.12.2017
Сообщений: 49

Перевод числа из двоичной в десятичную

17.12.2018, 10:55. Показов 11666. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Дана символьная строка, представляющая собой запись натурального числа в p-ичной системе счисления (2<=P<=9 ).Составить программу для перевода этого числа в десятичную систему счисления.

Только на Питоне, пожалуйста
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
17.12.2018, 10:55
Ответы с готовыми решениями:

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

Перевод чисел из двоичной системы в десятичную
Написать программу для перевода чисел из двоичной системы в десятичную

Перевод числа из двоичной в десятичную, или обратно
«Перевод числа из 10-ной в двоичную систему счисления” 1 задача. Программа должна запрашивать на вход число в 10-ной системе...

10
Эксперт по компьютерным сетямЭксперт Pascal/Delphi
 Аватар для TAVulator
4191 / 1292 / 237
Регистрация: 27.07.2009
Сообщений: 3,962
17.12.2018, 11:01
Ну этого добра на просторах интернета полно... Не интересно даже. Думаю и на этом форуме множество реализаций есть.
0
21 / 15 / 8
Регистрация: 23.10.2017
Сообщений: 102
17.12.2018, 12:08
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
def to_decimal(number, base):
    if base < 2 or base > 9:
        ready_decimal = 'Некорректная база системы счисления!'
    else:
        numstr = str(number)
        ready_decimal = 0
        for i in range(len(numstr) - 1, -1, -1):
            digit = int(numstr[i])
            if digit > base - 1:
                ready_decimal = 'Недопустимая цифра: ' + str(numstr[i])
                break
            else:    
                ready_decimal += digit * (base ** (len(numstr) - i - 1))
    return ready_decimal
0
1303 / 843 / 409
Регистрация: 12.03.2018
Сообщений: 2,305
17.12.2018, 14:21
Но, думаю, вам так нельзя
Python
1
2
3
4
5
6
7
def nTo10(x, n):
    try:
        return int(x, n)
    except:
        return 'Input Error'
 
print(nTo10('11111111', 2))
0
0 / 0 / 0
Регистрация: 19.12.2017
Сообщений: 49
17.12.2018, 14:22  [ТС]
Цитата Сообщение от aaamibor Посмотреть сообщение
def to_decimal(number, base):
* * if base < 2 or base > 9:
* * * * ready_decimal = 'Некорректная база системы счисления!'
* * else:
* * * * numstr = str(number)
* * * * ready_decimal = 0
* * * * for i in range(len(numstr) - 1, -1, -1):
* * * * * * digit = int(numstr[i])
* * * * * * if digit > base - 1:
* * * * * * * * ready_decimal = 'Недопустимая цифра: ' + str(numstr[i])
* * * * * * * * break
* * * * * * else: * *
* * * * * * * * ready_decimal += digit * (base ** (len(numstr) - i - 1))
* * return ready_decimal
Не работает Может кто нить еще предложит решение ?
0
21 / 15 / 8
Регистрация: 23.10.2017
Сообщений: 102
17.12.2018, 14:31
Berimor7331, почему не работает? Что даёте на вход, что выдаёт на выходе?
0
0 / 0 / 0
Регистрация: 19.12.2017
Сообщений: 49
17.12.2018, 14:36  [ТС]
aaamibor, попробуйте запустить в компиляторе, невозможно ввести данные, выдает то же число.
0
1303 / 843 / 409
Регистрация: 12.03.2018
Сообщений: 2,305
17.12.2018, 14:42
Berimor7331, нормально там все работает. Вам написали функцию, а вызвать вы ее должны своими ручками.
0
21 / 15 / 8
Регистрация: 23.10.2017
Сообщений: 102
17.12.2018, 14:47
Berimor7331,
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
def to_decimal(number, base):
    if base < 2 or base > 9:
        ready_decimal = 'Некорректная база системы счисления!'
    else:
        numstr = str(number)
        ready_decimal = 0
        for i in range(len(numstr) - 1, -1, -1):
            digit = int(numstr[i])
            if digit > base - 1:
                ready_decimal = 'Недопустимая цифра: ' + str(numstr[i])
                break
            else:    
                ready_decimal += digit * (base ** (len(numstr) - i - 1))
    return ready_decimal
 
nnumber = int(input('Число: '))
nbase = int(input('База системы счисления: '))
print 'В десятичной системе число', nnumber, ' с базой ', nbase, ' равно ', to_decimal(nnumber, nbase)
Python
1
2
3
4
5
6
Python 2.7.10 (default, Jul 14 2015, 19:46:27)
[GCC 4.8.2] on linux
   
Число:  122
База системы счисления:  3
В десятичной системе число 122  с базой  3  равно  17

Python
1
2
3
Число:  1111
База системы счисления:  2
В десятичной системе число 1111  с базой  2  равно  15
0
0 / 0 / 0
Регистрация: 19.12.2017
Сообщений: 49
17.12.2018, 14:48  [ТС]
aaamibor, благодарю
0
21 / 15 / 8
Регистрация: 23.10.2017
Сообщений: 102
17.12.2018, 14:49
Правда, у меня ошибочка есть. Функция, по условию задачи, должна принимать символьную строку. А не число, как у меня.
Поэтому вот:

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
def to_decimal(numstr, base):
    if base < 2 or base > 9:
        ready_decimal = 'Некорректная база системы счисления!'
    else:
        ready_decimal = 0
        for i in range(len(numstr) - 1, -1, -1):
            digit = int(numstr[i])
            if digit > base - 1:
                ready_decimal = 'Недопустимая цифра: ' + str(numstr[i])
                break
            else:    
                ready_decimal += digit * (base ** (len(numstr) - i - 1))
    return ready_decimal
 
nnumber = str(input('Число: '))
nbase = int(input('База системы счисления: '))
print 'В десятичной системе число', nnumber, ' с базой ', nbase, ' равно ', to_decimal(nnumber, nbase)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
17.12.2018, 14:49
Помогаю со студенческими работами здесь

Перевод из двоичной СС в десятичную
подскажите, как написать такую программу?

Перевод из двоичной в десятичную систему
привет всем. я только-только начинающий изучать Питон и уже спотыкаюсь на простейшем задании. нужно написать алгоритм для перевода...

Перевод числа из двоичной в десятичную
Перевести число a=1001,1(011) из двоичной в десятичную систему счисления. 1001 я перевел это 9. а вот 0,1(011) не знаю как именно надо....

Перевод числа из двоичной в десятичную
Нужно перевести число из двоичной в десятичную систему счисления. У меня есть код, он переводит только из десятичной в двоичную и не не...

Перевод числа из двоичной в десятичную с.с.
Дана задача: Задано неотрицательное целое число в двоичной системе счисления. Требуется перевести его в десятичную. Ввод В...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Киев стоит - украинская песня
zorxor 28.01.2026
wfWdiRqdTxc О Господи, Вечный, Ты . . . Я помоги, Бесконечный. . . Я прошу Ты. . . Я погибаю, спаси. . . Я прошу Тебя Вечный. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru