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

Перевод из любой с.с. в десятичную и последующая нормализация числа

12.04.2021, 14:36. Показов 2121. Ответов 6

Author24 — интернет-сервис помощи студентам
Запишите в нормализованном виде следующие числа:
12835,095(10); 0,00003846(10); 11001101,101(2); 0,000001101(2);
12021,00121(3); 0,0002212(3); A0FCD,EA41(16); 0,0000ABD15C(16)
Заранее спасибо за помощь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.04.2021, 14:36
Ответы с готовыми решениями:

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

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

Процедура "Перевод числа из любой системы счисления в десятичную"
Вот процедура перевода целых чисел из десятичной в любую другую систему счисления Как написать...

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

6
Модератор
Эксперт Python
1356 / 653 / 207
Регистрация: 23.03.2014
Сообщений: 3,057
12.04.2021, 16:38 2
Daniyar_Valiyev, пойдет?
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
def convert_base(num, to_base=10, from_base=10):
    # first convert to decimal number
    if isinstance(num, str):
        n = int(num, from_base)
    else:
        n = int(num)
    # now convert decimal to 'to_base' base
    alphabet = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
    if n < to_base:
        return alphabet[n]
    else:
        return convert_base(n // to_base, to_base) + alphabet[n % to_base]
# In [41]: convert_base('AA16342F', from_base=16, to_base=8)
# Out[41]: '25205432057'
 
# In [42]: convert_base('111', from_base=2)
# Out[42]: '7'
 
# In [43]: convert_base(33, to_base=16)
# Out[43]: '21'
 
# In [44]: convert_base(33333, to_base=20)
# Out[44]: '436D'
 
# In [45]: convert_base(3333333, to_base=20)
# Out[45]: '10GD6D'
1
Костыли любой сложности
201 / 146 / 36
Регистрация: 27.10.2019
Сообщений: 843
12.04.2021, 16:45 3
Daniyar_Valiyev, Dax, чем вас int(num,base=10) не устраивает?
0
Модератор
Эксперт функциональных языков программированияЭксперт Python
37329 / 20761 / 4275
Регистрация: 12.02.2012
Сообщений: 34,167
Записей в блоге: 14
12.04.2021, 17:02 4
Цитата Сообщение от user-ganz Посмотреть сообщение
ем вас int(num,base=10) не устраивает?
- тем, что нормализованными бывают только дробные числа (float), не int.
1
0 / 0 / 0
Регистрация: 05.02.2021
Сообщений: 2
12.04.2021, 17:08  [ТС] 5
Проблема в том, что он не может прочитать дробную часть, он переводит только целую
0
Костыли любой сложности
201 / 146 / 36
Регистрация: 27.10.2019
Сообщений: 843
12.04.2021, 17:15 6
Daniyar_Valiyev, Catstail, да, да, пойду я пожалуй отдыхать....
0
Эксперт Python
8774 / 4429 / 1858
Регистрация: 27.03.2020
Сообщений: 7,267
12.04.2021, 19:27 7
Лучший ответ Сообщение было отмечено Daniyar_Valiyev как решение

Решение

Daniyar_Valiyev, это?
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
def toBaseFrac(frac, base, n = 200) :
    alpha = "0123456789ABCDEF"
    b = ''
    while n :
        frac *= base
        frac = round(frac,n)
        b += str(alpha[int(frac)])
        frac -= int(frac)
        n -= 1
    return b
 
def norm_num(i, f):
    c = ''
    if i[0] == '-':
        c = '-'
        i = i[1:]
    if i == '0':
        f1 = f.strip('0')
        ep = str(len(f1) - len(f))
        f = f1.rstrip('0')
        i = ''
        if ep[0] == '-':
            ep = '(' + ep + ')'
    else:
        ep = str(len(i))
    return c + '0.' + (i + f)[:16] + '*10**' + str(ep)
 
 
###########
Numbers = ['-12835,095(10)', '0,00003846(10)', '11001101,101(2)', '0,000001101(2)', 
'12021,00121(3)', '0,0002212(3)', 'A0FCD,EA41(16)', '0,0000ABD15C(16)']
for w in Numbers:
    num = w.split('(')
    Number = num[0].replace(',', '.')
    Basein = int(num[1][:-1])
############
 
    alpha = "0123456789ABCDEF"
    if '.' in Number :
        n, frac = map(str,Number.split('.'))
        a = str(int(n,Basein))
        b = 0
        k = Basein
        for i in frac :
            b += alpha.index(i) / k
            k *= Basein
        b = str(toBaseFrac(b, 10)).rstrip('0')
        print(w)
        print(norm_num(a, b))
        #print(a+'.'+b)
        print()
print("end")
1
12.04.2021, 19:27
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.04.2021, 19:27
Помогаю со студенческими работами здесь

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

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

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

Перевод из любой системы счисления в десятичную
Ребята помогите пожалуйста Создать электронную таблицу, с помощью которой будет происходить...

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

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

Перевод числа в десятичную сс
Как получить из строки с 8ю нулями и единицами символ? Неужели придется сверять со всеми возможными...


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

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