Форум сайта python.su
Помогите пожалуйста написать функцию которая конвертирует введенные числа в системе исчисления я А на числа в системе исчисления В.
Как результат функция должна возвращать словарь
{‘system A’: число_в_системе_A, ‘system B’: число_в_системе_B}
систему исчисления ограничить от 2 до 16
Очень надеюсь на вашу помощь!
Офлайн
может укажете системы счисления?
Офлайн
от двоичной до шестнадцатеричной
Офлайн
ZerGмне кажется системы исчесления долждны вводится
может укажете системы счисления?
alex28746ну я ща не могу, там не сложно
Очень надеюсь на вашу помощь!
Офлайн
Точные словия задачи в студию!
Если вам лень хорошо описать задачу - то нам уж точно лень ее для вас писать
import binascii import string def byte_to_binary(n): return ''.join(str((n & (1 << i)) and 1) for i in reversed(range(8))) def hex_to_binary(h): return ''.join(byte_to_binary(ord(b)) for b in binascii.unhexlify(h)) def bintohex(s): t = ''.join(chr(int(s[i:i+8],2)) for i in xrange(0, len(s), 8)) return binascii.hexlify(t)
Отредактировано ZerG (Янв. 29, 2015 13:18:40)
Офлайн
mne ne len,prost wse prichoditsia perewodit s Polskogo i tak koriawo poluczajetsia…
Rebiat pomogite pozalujsta…
Офлайн
spasibo tebe ogromnoje!!!
Офлайн
Задача элементарная.
Если понимаете как на бумажке решается.
http://algolist.manual.ru/maths/teornum/count_sys.php
Я бы решил просто сначала число сконвертил в 10-чную систему. А затем из 10 в искомую.
Например
155 в 6-ричной перведем в 4-ричную
155 в 6-ричной -> в 10
155 в 6-чной ≡ 1*6^2 + 5*6^1 + 5*6^0 ≡ 71 в 10-чной
71 в 10 -> 4-ричную
71/4 = 17*4 + 3
17/4 = 4*4 + 1
4/4 = 1*4 + 0
1/4 = 0 + 1
71 в 10 -> 4-ричную ≡ 1013
155 в 6 ≡ 1013 в 4
Офлайн
Кстати вот очень наглядно Однако рекомендуется уметь самому делать
Жать “показать как оно получилось”
Офлайн
alex28746 вот то что вам нужно
def convert(a, b, n): A = '0123456789ABCDEF' num, new_num_string = int(str(n), a), '' while num != 0: new_num_string, num = A[num % b] + new_num_string, num / b return {a: n, b: new_num_string}
ZerGесли вам лень читать условие, то лучше не отвечайте
Если вам лень хорошо описать задачу - то нам уж точно лень ее для вас писать
alex28746открою вам большой секрет! помимо 2, 8, 10 и 16 систем можно сделать очень много: 3,4,5,6,7,9,11 и т.д.
систему исчисления ограничить от 2 до 16
alex28746что такое словарь можете почитать здесь
Как результат функция должна возвращать словарь
{‘system A’: число_в_системе_A, ‘system B’: число_в_системе_B}
Отредактировано terabayt (Янв. 29, 2015 21:19:11)
Офлайн