[英]Converting ascii text to to number and back to ascii
我正在創建一個具有兩個功能的 python 代碼
textToNumber(t) function 采用純文本參數('Hello world')並通過考慮每個字母的 ASCII 值將其轉換為非常大的數字。 function 看起來像這樣:
def textToNumber (txt):
text_number = 0
for letter in txt:
text_number = (text_number * 256) + ord(letter)
return text_number
numberToText(n) 接受一個數字並將其轉換為相應的純文本。 這個 function 與第一個 function 正好相反。 它看起來像這樣:
def numberToText (nm):
n = nm
number_text = ""
while n > 0:
part_n = int(n) & 255
number_text = chr(part_n) + number_text
n = n - part_n
n = n / 256
return number_text
因此,當我們在第一個中使用第二個 function 時,它應該將原始文本返回給我們。 function 可以很好地處理小文本,但是當文本很大時會出現亂碼。 我認為 Python 對變量的大小沒有限制,只要我們的機器有空間。 那么,為什么會發生這種情況? 我該如何解決?
錯誤 output:
>>> numberToText(textToNumber('Hello world'))
'Hello x\x00\x00\x00d'
使用//
而不是/
來獲得 integer 除法。 否則你會得到浮點數,它們的精度不如大整數。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.