This repository was archived by the owner on Dec 16, 2022. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathseti.py
More file actions
98 lines (76 loc) · 2.58 KB
/
seti.py
File metadata and controls
98 lines (76 loc) · 2.58 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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
def decimal_to_binary(decimal_number):
binary_list = []
if decimal_number > 0:
while decimal_number > 0:
binary_number = decimal_number % 2
binary_list.append(binary_number)
decimal_number //= 2
binary_list.reverse()
elif decimal_number < 0:
decimal_number = abs(decimal_number)
while decimal_number > 0:
binary_number = decimal_number % 2
binary_list.append(binary_number)
decimal_number //= 2
binary_list.reverse()
binary_list = "-" + str(binary_list)
else:
binary_list = [0]
print(binary_list)
# decimal_to_binary(13)
def binary_to_decimal(binary_digits):
times = 0
decimal_number = 0
for digit in reversed(binary_digits):
if digit == 1:
decimal_number += (digit * (2**times))
else:
pass
times += 1
print(decimal_number)
# binary_to_decimal([1, 1, 0, 0, 1])
def decimal_to_base(decimal_number, destination_base):
base_list = []
while decimal_number > 0:
base_number = decimal_number % destination_base
base_list.append(base_number)
decimal_number //= destination_base
base_list.reverse()
print(base_list)
# decimal_to_base(13, 2)
def base_to_decimal(digits, original_base):
times = 0
decimal_number = 0
for digit in reversed(digits):
decimal_number += (digit * (original_base**times))
times += 1
print(decimal_number)
# base_to_decimal([2, 4], 8)
def digits_as_string(digits, base):
for digit in digits:
if digit > base:
raise ValueError
digits = ['A' if num == 10 else 'B' if num == 11 else 'C' if num == 12 else 'D' if num == 13 else 'E' if num == 14 else 'F' if num == 15 else num for num in digits]
if base > 16:
raise ValueError
string_digits = ''.join(str(digit) for digit in digits)
print(string_digits)
# digits_as_string([2, 15, 9, 11], 16)
def convert_base(original_digits, original_base, destination_base):
times = 0
decimal_number = 0
if original_base == destination_base:
print(original_digits)
else:
for digit in reversed(original_digits):
decimal_number += (digit * (original_base**times))
times += 1
# decimal_number
base_list = []
while decimal_number > 0:
base_number = decimal_number % destination_base
base_list.append(base_number)
decimal_number //= destination_base
base_list.reverse()
print(base_list)
convert_base([1, 1, 7], 8, 2)