aboutsummaryrefslogtreecommitdiff
path: root/dialoguer/binary_conversion.py
blob: dba0ea9b50ef29ec41f9a438405429a9e165a178 (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
cls_str = type("string")
cls_int = type(1)
cls_byt = type(b'\x00')

def convert_to_binary(data):
	bin_data = None
	if type(data) == cls_str:
		n = ''
		for s in 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) == cls_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 == cls_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 == cls_int:
		n = ''
		for b in bin_data: n = f'{n}{b}'
		data = n
		data = int(data, 2)

	return data