-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathhw05_2.py
More file actions
58 lines (44 loc) · 1.89 KB
/
hw05_2.py
File metadata and controls
58 lines (44 loc) · 1.89 KB
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
53
54
55
56
57
58
# 2. Написать программу сложения и умножения двух шестнадцатеричных чисел. При этом
# каждое число представляется как массив, элементы которого это цифры числа.
#
# Например, пользователь ввёл A2 и C4F.
# Сохранить их как [‘A’, ‘2’] и [‘C’, ‘4’, ‘F’] соответственно.
# Сумма чисел из примера: [‘C’, ‘F’, ‘1’].
# Произведение - [‘7’, ‘C’, ‘9’, ‘F’, ‘E’].
from collections import deque
def input_format(a, b):
num_1 = deque(str.upper(a))
num_2 = deque(str.upper(b))
return num_1, num_2
def to_dec(hexa):
hex_dec = {'0': 0, '1': 1, '2': 2, '3': 3, '4': 4, '5': 5, '6': 6, '7': 7, '8': 8, '9': 9,
'A': 10, 'B': 11, 'C': 12, 'D': 13, 'E': 14, 'F': 15}
dec = 0
deg = len(hexa) - 1
for var in hexa:
dec += hex_dec[var] * 16 ** deg
deg -= 1
return dec
def to_hex(dec):
dec_hex = {0: '0', 1: '1', 2: '2', 3: '3', 4: '4', 5: '5', 6: '6', 7: '7', 8: '8', 9: '9',
10: 'A', 11: 'B', 12: 'C', 13: 'D', 14: 'E', 15: 'F'}
hexa = ''
if dec == 0:
return '0'
while dec != 0:
hexa += dec_hex[dec % 16]
dec = dec // 16
return hexa[::-1]
def oper_sum(num_1, num_2):
result = deque(to_hex(to_dec(num_1) + to_dec(num_2)))
return result
def oper_mul(num_1, num_2):
result = deque(to_hex(to_dec(num_1) * to_dec(num_2)))
return result
a = input('Введите число А (HEX): ')
b = input('Введите число B (HEX): ')
num_1, num_2 = input_format(a, b)
summ = oper_sum(num_1, num_2)
mult = oper_mul(num_1, num_2)
print(f'\n{list(num_1)} + {list(num_2)} = {list(summ)};')
print(f'{list(num_1)} * {list(num_2)} = {list(mult)}.')