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
Скрипт написан под Python 2, для Python 3.x: raw_input заменить на input, ну и с print работать как с функцией.
Работать будет только для целых чисел. Результат выдается в системе счисления записи первого числа. Второе число может быть в другой СС.
Здесь, конечно, except без указания исключений, что не хорошо, но не помню, какие исключения генерирует ast.literal_eval… что возможно, следует доработать
Пример:
Enter value 1:0xdeadbeef
Enter value 2:0b00110011
(hex) Result is 0xdeadbf22