利用 Python 做 ASCII 轉換

ASCII 是程式語言中的一種編碼方式,代表了電腦上的128字元。相信大家應該知道電腦是由一連串的 0 和 1 在運作,所以我們在儲存字元的時候,電腦會將他們轉換成0和1後儲存起來,不過為了方便人類看所以一般來說 ASCII 看起來會是十進位表示,不過在電腦中實際儲存的會是一組 2 進位數字。下面我來看看幾個例子:

A : 65 (0100 0001) ; B : 66(0100 0010) ; ! : 33(0010 0001)…

其中要特別注意,在 ASCII 編碼中我們會把數字也轉換成一組二進位編碼,而這組二進位編碼再轉回十進位時,看起來就會是一組不同的數字。

1 : 49(0011 0001) ; 2 : 50 (0011 0010)….

所以一開始大家可能會覺得很奇怪 : 為什麼明明是 1 在 ASCII會變成 49 ,其實他是一組2 進位方式儲存,這組二進位剛好是十進位的 49。
(詳細轉換表可以參考維基百科)

而利用 Python ,將字元做轉換,把字元轉換成 ASCII中所代表的數字,也可以把 ASCII 的數字轉換成字元,下面我們來實際操作看看吧 :

利用chr()我們可以把 ASCII 中的數字轉換成字元 :

利用ord()則可以把字元轉換成 ASCII 編碼方式:

接著我們來試著寫一個程式可以一段輸入的字元都轉換成 ASCII ,在我的做法中我會先把輸入字轉換成字串(str()),接著把字串中的每個字拿出來轉換,並儲存在一開始宣告的空清單中:

word_ascii = []
word = str(input("輸入文字"))
for i in word: 
    ascii_transform = ord(i)
    print(ascii_transform )
    word_ascii.append(ascii_transform)

print(word_ascii)

在空格中輸入我們想要轉換的字元,我們就會發現可以利用這個程式把字元通通轉換成ASCII 囉~

當然,要把 ASCII 轉換回來也OK,大家可以想一想上面的程式碼要怎麼修改。

Facebook Comments

發表迴響