aboutsummaryrefslogtreecommitdiff
path: root/dialoguer/binary_conversion.py
blob: a3548513df7bcc3887830ec400c60ba26095576f (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
def bin_conv(data, data_type = None):
	conv_data = None
	#convert to binary 
	if type(data) == str and data_type == None:
		conv_data = reversed(data)
		conv_data = ''.join(conv_data)
		n = ''
		for s in conv_data:
			m = ord(s)
			m = hex(m)
			n += m.lstrip('0x')
		conv_data = n
		conv_data = int(conv_data, 16)
		conv_data = bin(conv_data)
		conv_data = conv_data.replace('b', '')
		conv_data = ''.join(reversed(conv_data))
		conv_data = conv_data.zfill(8)
		n = b''
		for b in conv_data:
			m = int(b)
			m = chr(m)
			m = bytes(m, 'utf-8')
			n += m
		conv_data = n
	elif type(data) == int and data_type == None:
		conv_data = bin(data)
		conv_data = conv_data.lstrip('0b')
		conv_data = conv_data.zfill(8)
		n = b''
		for b in conv_data:
			m = int(b)
			m = chr(m)
			m = bytes(m, 'utf-8')
			n += m
		conv_data = n
	
	#convert from binary 
	elif type(data) == bytes and data_type == str:
		n = ''
		for b in data: n = f'{b}{n}'
		conv_data = n
		conv_data = int(conv_data, 2)
		conv_data = hex(conv_data)
		conv_data = conv_data.lstrip('0x')
		conv_data = bytearray.fromhex(conv_data)	
		conv_data = conv_data.decode()
		conv_data = ''.join(reversed(conv_data))
	elif type(data) == bytes and data_type == int:
		n = ''
		for b in data: n = f'{b}{n}'
		conv_data = n
		conv_data = int(conv_data, 2)
	elif type(data) == bytes and data_type == bool:
		conv_data = bool(data[0])

	return conv_data