Переклад з десяткової до будь-якої системи числення
Доброго дня, такий код для перекладу в десяткову з будь-якої системи числення:
int(str(decimal_number),
2)
Де 2 - основа, з якої перекладаємо.
Моє питання в наступному - чи існує легкий спосіб/стандартна бібліотека для перекладу з десятковий в будь-яку систему числення?
Переклад з будь-якої системи числення до будь-якої системи числення
Знадобився код на пітоні, який переводить з будь-якої системи числення в будь-яку систему.
Переведення з десяткової до двійкової системи числення
Написати функцію scalenotation, що приймає 1 аргумент - число в десятій системі числення, в.
Переведення вихідного масиву в будь-яку систему числення від двійкової до дев'ятирічної
Заданий масив F із дійсних чисел у десятковій системі числення.
Переведення дробової частини числа з десяткової системи числення до будь-якої іншої системи числення
Доброго дня як перевести дробової частини числа з десяткової системи числення в будь-яку іншу.
Переведення числа з десяткового до будь-якої системи числення
Завдання Написати рекурсивну програму перекладу цілих чисел, що не перевершують ^, з.
Існують стандартні системи числення - bin(), hex(), oct()
Але якщо вам і цього мало, можна пошукати бібліотеки для pip'а, певен, такі теж знайдуться, хоч завдання на кілька рядків.
Рішення
1 2 3 4 5 6 7 8 9 10 11 12 13 14
def conv(n,radix): digits="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ" r=""
while(n>0): k=n%radix чергова цифра r=digits[k]+r # приклеїмо до результату n=n//radix return r n=int(input("n=")) x8=conv(n,8) x20=conv(n,20)
print("у 8-й СС",x8)
print("у 20-й СС",x20)
Переведе вихідне число в будь-яку систему з основою 2-36
n=1234 у 8-й СС 2322 у 20-й СС 31E
Catstail, а ви не знаєте де можна знайти таке ж рішення, тільки для дійсних чисел?
Рішення
- де знайти - не знаю, але його легко написати:
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 convi(n,radix): digits="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
if n==0: return
"0" r=""
while(n>0): k=n%radix чергова цифра r=digits[k]+r # приклеїмо до результату n=n//radix return r def convf(a,radix,fsize): digits="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ" c="" f="" ca=int(a) fa=a-int(a) c=convi(ca,radix)
for _ in
range(fsize): fa=fa*radix cf=int(fa) fa=fa-cf f=f+digits[cf]
return c+"."+f print(convf(3.14159,3,13))
Catstail, добрий вечір! радий повідомити, що Ваш метод чудово працював весь цей час, поки вчора я не зіткнувся із завданням, де потрібно було перевести число в 49-чну СС. Чудово розумію, що вона вирішується аналітично, але якщо говорити про програмний метод, таке можливо?
- І що? Ось - вщент 62. Влаштує? Якщо ні – додайте ще цифр.
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 convi(n,radix): digits="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrsuvwxyz"
if n==0: return
"0" r=""
while(n>0): k=n%radix чергова цифра r=digits[k]+r # приклеїмо до результату n=n//radix return r def convf(a,radix,fsize): digits="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrsuvwxyz" c="" f="" ca=int(a) fa=a-int(a) c=convi(ca,radix)
for _ in
range(fsize): fa=fa*radix cf=int(fa) fa=fa-cf f=f+digits[cf]
return c+"."+f print(convf(3.14159,3,13))
Тільки не захоплюйтеся великою кількістю цифр у дрібній частині. Виходьте з того, що число типу double (у Пітоні - float) зберігається в пам'яті в 8 байтах, що відповідає ~ 15-16 десятковим цифрам. Це означає, що, наприклад, в сс з основою 36, загальне к-во значущих цифр (ціла+дрібна частина) має перевищувати 10. А сс з осн. 49 – дев'яти.
ось начебто так, якщо коротко, переволіли з 10 сист числення в будь-яку:
1 2 3 4 5 6 7 8 9 10 11 12
def perevod(a, b): ishod =
''
while a >
0: ishod =
str(a % b) + ishod a = a // b print(ishod) v =
input().split() d1 =
int(v[0]) d2 =
int(v[1]) perevod(d1, d2)
Переведення з будь-якої системи числення до будь-якої іншої системи числення (2-36)
Привіт!1 курс факультету ІВТ, вивчаю С++ лише один місяць. З основного пройшли рядки, масиви.
Програма для переведення з десяткової сс до будь-якої іншої системи числення
Створити програму переведення заданого числа в десятковій системі числення до будь-якої іншої. Вихідні.
Переклад з десяткової системи числення до будь-якої іншої
Здрастуйте. Мені потрібно на Делфі написати код перекладу з десятирічної системи числення до будь-якої.
Перевести задане користувачем у десятковій системі число в будь-яку систему числення
Потрібна допомога (рішення). Наперед вдячний. перевести задане користувачем у десятковій системі.
Переведення числа з десяткової системи числення до будь-якої іншої
написати програму, яка переводить число з десяткової системи числення в будь-яку систему числення
Переклад чисел із десяткової системи числення до будь-якої іншої
Вважати з клавіатури ціле невід'ємне число в десятковій системі числення і основу нової.
Або скористайтесь пошуком по форуму:
Переклад з будь-якої системи числення в будь-яку [закрито]
Закритий. Це питання необхідно уточнити чи доповнити подробицями. Відповіді на нього зараз не приймаються.
Бажаєте покращити це питання? Додайте більше подробиць та уточніть проблему, відредагувавши це повідомлення.
Дуже потрібен робочий код на Python, який переводить будь-яке число з будь-якої системи числення в іншу задану (будь-яку) систему числення. (від 0 по 32 може бути і вихідна с/с, і отримана) Формат введення: Число (Наприклад: AA16342F) Початкова система числення (16) Система числення, в яку переводимо (8) Висновок отриманого числа (25205432057)
150k 12 12 золотих знаків 61 61 срібний знак 133 133 бронзових знаків
1 відповідь 1
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'
UPD: нерекурсивна реалізація функції:
def convert_base (num, to_base = 10, from_base = 10): # first convert to decimal number n = int (num, from_base) if isinstance (num, str) else num # now convert decimal to 'to_base' base alphabet = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ" res = "" while n > 0: n,m = divmod(n, to_base) res += alphabet[m] return res[::-1]
Чи є функції Python для переведення числа в 10-у систему числення?
Власне, все питання у заголовку. Сама функція потрібна на вирішення завдання. Суть завдання в тому, що вводять число та підстави його системи числення, і треба перевірити, що число підходить під основу, тобто. кожна цифра (або лат. літера) менша за основу. Мій алгоритм - це перевести число в десяткову, а потім з 10-ї не складно перевірити, чи для 10-й код вже написав:
1 відповідь 1
Стандартна функція int викидає виняток ValueError , якщо не можна переконвертувати рядок у число за вказаною основою, перший і другий аргумент відповідно.
Так, але мені потрібно вивести NO, а не ValueError, якщо число не підходить під основу і YES, якщо підходить.
На жаль, не вмію, буду радий, якщо поясните як. P.s. тільки починаю вивчати Python.
@spirit, для запису коду треба відбити кожен рядок чотирма пробілами, а сам код - двома перекладами рядка на початку і наприкінці.Коментарі при цьому ріжуть пробільні символи на початку і наприкінці тексту, тому коментар треба починати не з коду (досить просто поставити крапку і два переклади рядка, а потім писати код). Називається все це форматування markdown.