簡體   English   中英

如何將 ascii python 字符串轉換為其三進制表示

[英]How do i convert a ascii python string to its trinary representation

我試圖以盡可能最緊湊的方式以只有 a、t 和 g 的 dna 格式對文本進行編碼。

我嘗試將字符串轉換為二進制,然后是 int,然后是三進制,但是當二進制通過 int(binary,2) 轉換為 int 時,ascii 文本“損壞”為亂碼。

我找到了解決方案

def asciiToTrinary(chars):
    result = []
    for char in chars: #covnvert to trinary(revrersed)
        currResults=[]
        n = ord(char)
        while n:
            n, r = divmod(n, 3)
            currResults.append(str(r))
        currResults=currResults[::-1]
        result.append("".join(currResults))
    result=result[::-1] #idk what this does but code breakes without it
    result.reverse() #reverse
    trinary=[]
    for char in result: #add padding
        char=(8-len(char))*"0"+char
        trinary+=char
    return "".join(trinary)

def trinaryToAscii(trinary):
    trinary=[trinary[i:i+8] for i in range(0, len(trinary), 8)] #break into chunks of 8
    chars=""
    for char in trinary:
        chars+=chr(int(char,3))
    return chars

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM