blob: a770812020fa013337701126837179284a21f305 (
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
61
62
63
64
65
66
67
68
69
70
|
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
if __name__ == '__main__':
print(convert_to_binary(3))
print(convert_to_binary('3'))
int_3 = b'\x00\x00\x00\x00\x00\x00\x01\x01'
str_3 = b'\x00\x00\x01\x01\x00\x00\x01\x01'
print(convert_from_binary(int_3, cls_int))
print(convert_from_binary(str_3, cls_str))
|