diff options
author | TinWoodman92 <chrhodgden@gmail.com> | 2023-06-13 19:54:54 -0500 |
---|---|---|
committer | TinWoodman92 <chrhodgden@gmail.com> | 2023-06-13 19:54:54 -0500 |
commit | 01d122a33d05aac40942b9f6366b7e82cd7468e4 (patch) | |
tree | ccf7b7d2d481ac594aad97bad9d171872f7deb50 /dialoguer | |
parent | 3527e1a22e559f8a3d6e87bb2d24adb6ae2c64a4 (diff) |
added python binary conversion module.
Diffstat (limited to 'dialoguer')
-rw-r--r-- | dialoguer/binary_conversion.py | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/dialoguer/binary_conversion.py b/dialoguer/binary_conversion.py new file mode 100644 index 0000000..a770812 --- /dev/null +++ b/dialoguer/binary_conversion.py @@ -0,0 +1,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))
\ No newline at end of file |