Natsukl

base32768 binary converter

Dec 9th, 2023 (edited)
950
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.15 KB | Source Code | 0 0
  1. # Scar32
  2. # DEVIXLER
  3.  
  4. # this is my own take on a base32K converter.
  5. # this format can convert strings of bits starting at
  6. # 0 or 1 and can convert bits at any length even one
  7. # bit or even zero bits!
  8.  
  9. def bits2character(bits):
  10.     character = 32
  11.     for i in range(15):
  12.         character += int(bits[i])*2**i
  13.     return chr(character)
  14. characters = '01'
  15. def character2bits(character):
  16.     n = ord(character)-32
  17.     out = ''
  18.     for l in range(15):
  19.         char = int(n)%2
  20.         out += characters[char]
  21.         n = (n-char)/2
  22.     return out
  23. def bits2string(bits):
  24.     out = ''
  25.     bits = bits+'1'+'0'*(15-len(bits)%15-1) # my format puts a 1 at the end of the bits followed by zeros
  26.     for p in range(int((len(bits)+1)/15)):
  27.         chunk = ''
  28.         for s in range(15):
  29.             chunk += bits[p*15+s]
  30.         out += bits2character(chunk)
  31.     return out
  32. def string2bits(string):
  33.     data = ''
  34.     for i in string:
  35.         data += character2bits(i)
  36.     while data[-1] == '0':
  37.         data = data[:-1]
  38.     data = data[:-1]
  39.     return data
  40. # demo
  41. print(bits2string(input('bits to string: ')))
  42. print(string2bits(input('string to bits: ')))
Advertisement
Add Comment
Please, Sign In to add comment