aboutsummaryrefslogtreecommitdiff
path: root/dialoguer/binary_conversion.py
blob: c39b78e4a30bd5829985a2e139633458b2ffecfa (plain)
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
def convert_to_binary(data):
	bin_data = None
	if type(data) == str:
		bin_data = reversed(data)
		bin_data = "".join(bin_data)
		n = ''
		for s in bin_data:
			m = ord(s)
			m = hex(m)
			n += m.lstrip('0x')
		bin_data = n
		bin_data = int(bin_data, 16)
		bin_data = bin(bin_data)
		#bin_data = bin_data.lstrip('0b')
		bin_data = bin_data.replace('b', '')
		bin_data = ''.join(reversed(bin_data))
		bin_data = bin_data.zfill(8)
		n = b''
		for b in bin_data:
			m = int(b)
			m = chr(m)
			m = bytes(m, 'utf-8')
			n += m
		bin_data = n
	elif type(data) == int:
		bin_data = bin(data)
		bin_data = bin_data.lstrip('0b')
		bin_data = bin_data.zfill(8)
		n = b''
		for b in bin_data:
			m = int(b)
			m = chr(m)
			m = bytes(m, 'utf-8')
			n += m
		bin_data = n

	return bin_data

def convert_from_binary(bin_data, cls_type):
	
	if cls_type == str:
		n = ''
		for b in bin_data: n = f'{b}{n}'
		#for b in bin_data: n = f'{n}{b}'
		data = n
		data = int(data, 2)
		data = hex(data)
		data = data.lstrip('0x')
		data = bytearray.fromhex(data)	
		data = data.decode()
		data = ''.join(reversed(data))
	elif cls_type == int:
		n = ''
		for b in bin_data: n = f'{b}{n}'
		data = n
		data = int(data, 2)
	elif cls_type == bool:
		data = bool(bin_data[0])

	return data