--- a
+++ b/python/maths3.py
@@ -0,0 +1,131 @@
+import struct
+
+# print(struct.unpack('>i', ''.join([chr(242), chr(108)])))
+
+bit_list = []
+
+level = 0
+(chr(108), 29)
+for char, byte in [(chr(108), 29), (chr(253), 28)]:
+    level = 0
+    print(byte)
+    bit_list = []
+    for i in range(232, 240, 1):
+        print(i)
+        level <<= 1
+        print(level)
+        o = i % 8
+        bit_list.append(chr(ord(char) >> o & 1))
+        level += ord(char) >> o & 1
+    print(bit_list)
+    print(level)
+    print(struct.unpack('>ii', ''.join(bit_list)))
+    print(struct.unpack('>ff', ''.join(bit_list)))
+    print(struct.unpack('hhhh', ''.join(bit_list)))
+    print(struct.unpack('d', ''.join(bit_list)))
+    print(struct.unpack('l', ''.join(bit_list)))
+    bit_list = []
+    level = 0
+
+    for i in range(239, 231, -1):
+        print(i)
+        level <<= 1
+        print(level)
+        o = i % 8
+        bit_list.append(chr(ord(char) >> o & 1))
+        level += ord(char) >> o & 1
+    print(bit_list)
+    print(level)
+    print(struct.unpack('ii', ''.join(bit_list)))
+    print(struct.unpack('ff', ''.join(bit_list)))
+    print(struct.unpack('hhhh', ''.join(bit_list)))
+    print(struct.unpack('d', ''.join(bit_list)))
+    print(struct.unpack('l', ''.join(bit_list)))
+    bit_list = []
+    for i in range(224, 232, 1):
+        print(i)
+        level <<= 1
+        print(level)
+        o = i % 8
+        bit_list.append(chr(ord(char) >> o & 1))
+        level += ord(char) >> o & 1
+    print(bit_list)
+    print(level)
+    print(struct.unpack('ii', ''.join(bit_list)))
+    print(struct.unpack('ff', ''.join(bit_list)))
+    print(struct.unpack('hhhh', ''.join(bit_list)))
+    print(struct.unpack('d', ''.join(bit_list)))
+    print(struct.unpack('l', ''.join(bit_list)))
+    level = 0
+
+    bit_list = []
+    for i in range(231, 223, -1):
+        print(i)
+        level <<= 1
+        print(level)
+        o = i % 8
+        bit_list.append(chr(ord(char) >> o & 1))
+        level += ord(char) >> o & 1
+    print(bit_list)
+    print(level)
+    print(struct.unpack('ii', ''.join(bit_list)))
+    print(struct.unpack('ff', ''.join(bit_list)))
+    print(struct.unpack('hhhh', ''.join(bit_list)))
+    print(struct.unpack('d', ''.join(bit_list)))
+    print(struct.unpack('l', ''.join(bit_list)))
+"""
+    print(struct.unpack('ii', ''.join(bit_list)))
+
+    print(struct.unpack('>ii', ''.join(bit_list)))
+
+    print(struct.unpack('hhhh', ''.join(bit_list)))
+
+    print(struct.unpack('>hhhh', ''.join(bit_list)))
+
+    print(struct.unpack('ff', ''.join(bit_list)))
+
+    print(struct.unpack('>ff', ''.join(bit_list)))
+
+    print(struct.unpack('d', ''.join(bit_list)))
+
+    print(struct.unpack('>d', ''.join(bit_list)))
+    bit_list = []
+    for i in range(8):
+        level <<= 1
+        print(level)
+        bit_list.append(chr(ord(byte) >> i & 1))
+        print(bit_list)
+        if sys.version_info >= (3, 0):
+            level |= (byte >> i * 8) & 1
+        else:
+            level |= (ord(chr(105)) >> i) & 1
+
+    print(struct.unpack('ii', ''.join(bit_list)))
+
+    values = struct.unpack('>ii', ''.join(bit_list))
+    value_1 = struct.pack('<i', values[0])
+    value_2 = struct.pack('<i', values[1])
+    print(value_1)
+    print('------------')
+    print(struct.unpack('ff', value_1 + value_2))
+    print(struct.unpack('hhhh', ''.join(bit_list)))
+
+    print(struct.unpack('>hhhh', ''.join(bit_list)))
+
+    print(struct.unpack('ff', ''.join(bit_list)))
+
+    print(struct.unpack('>ff', ''.join(bit_list)))
+
+    print(struct.unpack('d', ''.join(bit_list)))
+
+    print(struct.unpack('>d', ''.join(bit_list)))
+
+print(256 * 0.51)
+
+value = struct.pack('>f', 2048.00)
+print(struct.unpack('>hh', value))
+print(struct.unpack('>l', value))
+value_2 = struct.unpack('hh', value)
+value_3 = struct.pack('i', value_2)
+print(value_3)
+"""