Форум сайта python.su
0
Сложение в заданной пользователем системе счисления
вводится система счисления (число больше 1, меньше 10)
затем на разных строках два числа
Я сломлен, на словах и на бумаге все понимаю, а как программу написать - не понимаю(
Помогите, пожалуйста!
Буду очень признателен!
Отредактировано rekz (Ноя. 2, 2016 14:32:26)
Офлайн
35
CC = системе счисления?!
В общем случае, для произвольных систем счисления с количеством цифр больше 10, могут использоваться какие угодно символы для обозначения этих чисел (в шестнадцатиричной используются A,B,C ,D , E, F). Поэтому нужны уточнения относительно записи чисел в таких СС.
Но, скорее всего, СС это только {двоичная, восьмиричная, десятичная, шестнадцатиричная}.
По записи числа не всегда можно догадаться в какой СС оно написано 100, например. Поэтому и здесь нужна дополнительная информация.
#!/usr/bin/env python # -*- coding: utf-8 -*- import ast raw_a = raw_input('Enter value 1:') raw_b = raw_input('Enter value 2:') try: a = ast.literal_eval(raw_a) b = ast.literal_eval(raw_b) except: print('An error has occurred! Check your inputs') exit(1) if 'x' in raw_a: print "(hex) Result is ", hex(a + b) elif 'o' in raw_a: print "(oct) Result is ", oct(a + b) elif 'b' in raw_a: print "(bin) Result is ", bin(a + b) else: print "(dec) Result is ", a + b
Enter value 1:0xdeadbeef Enter value 2:0b00110011 (hex) Result is 0xdeadbf22
Офлайн
857
>>> a = 'ff' >>> b = 'ab' >>> >>> int(a, 16) + int(b, 16) 426 >>> hex(int(a, 16) + int(b, 16)) '0x1aa' >>>
Отредактировано py.user.next (Ноя. 2, 2016 04:42:10)
Офлайн