Revised the ascii5.py and tested it on python.

This commit is contained in:
juddin22
2026-03-29 19:58:27 -04:00
parent 4aebe510e9
commit 8b7395ff6c

View File

@@ -1,8 +1,7 @@
from custom_codecs.register import register_codec
from text_codecs.register import register_codec
from easybits import Bits
import string
chars = string.ascii_uppercase + " "
char_to_num = {c: i for i, c in enumerate(chars)}
num_to_char = {i: c for i, c in enumerate(chars)}
@@ -14,10 +13,10 @@ def encode(text):
for ch in text:
if ch in char_to_num:
num = char_to_num[ch]
b = Bits(uint=num, length=5)
b = Bits(format(num, "05b"))
result = result.concat(b)
while len(result) % 8 != 0:
result = result.concat(Bits('0'))
@@ -31,11 +30,10 @@ def decode(data):
chunk = bits[i:i+5]
if len(chunk) < 5:
break
num = chunk.uint
num = int(str(chunk), 2)
if num in num_to_char:
text += num_to_char[num]
return text
register_codec(encode, decode, "ascii5")