簡體   English   中英

將 ascii 文本轉換為數字並返回 ascii

[英]Converting ascii text to to number and back to ascii

我正在創建一個具有兩個功能的 python 代碼

  • textToNumber(t)
  • numberToText(n)

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.

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