那字元最大的用處呢,就是用ASCII的形式來把文字資訊表示出來,之前我們的文字呢,
之前我們處理的東西大部份是數字,都是3、5、7 2.8這種之類的。但我們現在要開始處理文字資訊的話,就是,
第一個事情就是要把文字資訊存起來。當然我們可以用整數存,不過這樣太浪費空間了,所以我 們想說能不能
用一個位元組來存資訊。因為英文的資訊它的編碼事實上滿簡單的,
目前最常用的就是所謂ASCII碼,ASCII碼就是說
把0到127,就是這些整數,這些正整數,
對應到我們常用的英文字母大小,大小寫啊,0~9啊,標點符號啊底線這些之類的。所以我 們在計算機裏頭,
存這些文字資訊呢,事實上也是存成數字。
那你怎麼知道哪一個數字對應到哪個字元呢?比如說,
A到底是存到多少,那就需要一套編碼,所以這個編碼就是說這些整數跟我們現在所看到
這些英文字母、數字這些的對應表,這個對應表就叫ASCII,
這是大家都用的,就是用一套,大家都用,這樣就可以交換資訊。
那所以我們要印出來之後呢,如果c是一個charactor,是一個 字元的話,我們就以c的方式來印出來。這個c就是charactor
最前面的字母,這樣的話就能把character以c的形式印出來。如果你把它用成
比如說1的話,就是整數的方式印出來,那就失去我們想要的意義了。我們現在就是看說如果我們把 它字元來看的話,
那到底是英文字母的哪一個這樣?之類的。它的位子,我們ASCII表到底要怎麼樣來查找呢?
那最簡單的方法就是我們自己再造一個,那怎麼造呢?我們現在就說一個方法。那在這邊的話我們,
查找的方法是這樣的,我們想寫一個程式印出32~127的ASCII碼,
那對應到16進位元就是20~7F,這些東西是可以印出來的ASCII碼,
那些負的我們就不管它了。那我們選這個範圍是因為32之前都是特殊字元,
印出來也沒甚麼意思。所以我們現在的目標是32~127的ASCII碼。
把它印出來說,比如說61的話,那到底是多少。那這個事情怎麼做呢?
這事情我們做法是這樣,我們寫一個兩輪迴圈,寫兩輪迴圈,一開始我們先建立表頭
把 前面這個0~F這個,0~15這個十六進位這個頭,
上面那一行把它寫出來,然後呢我們進入這個迴圈,這個迴圈甚麼意思呢?就是說
我們每16個16個就印成一行,在這裡,底層這個迴圈,
所以就是說,每16個我就印一行,我怎麼控制這件事情呢?
就是說,我把我的i跟j做一個計算,那這個i呢
就是它這個第幾排,從上面數下來第幾排,它總共如果32到 127的話,我們這邊用16進位的話,就是20到7F,所以我們直接從
2到7,我這邊特別寫小於等於,這樣你就知道最後一個是7。
那第二層迴圈呢,就是15,你可以把它想像成二維的劇增,它有這麼多個row,
row在這裡, 這麼多個column在這裡。那每一次呢我就說我現在ASCII值到底是多少,那這個方法-
最簡單, 就把i*16+j就好,所以一開始是32,然後32,然後33、34這樣一直下去。
然後每次印的時候,我們就用之前教的這個片語,就是說你直接把charactor形式印出來就好。
但這樣做會有一個問題,就是說你真的這樣做的話會印一排,很難看。所以我想把它
就是說16格我就要它換行,那這個怎麼做呢?你就做完這個底層迴圈
這底層迴圈是把它每一排,每一排把它印出來再叫它換行。
這樣就行了。那執行結果呢?
就像這個樣子。你就可以看到一個它的這個,我拿這個
數值去印出來的ASCII表。那這個圖怎麼看呢,比如說我們想知道A
的ASCII值是多少,那我們就
那我們就對到這個表,因為它是第6,就是61,61的話就是十六進位的61,
那在這邊的話,就是97,因為6*16+1就是97,所以我們就知道說,
在ASCII表裡頭,97就對應到這個大寫的字元A,
那這個位子怎麼剛好呢,是因為20在這裡,那我們把第一排用 1把它佔掉,所以2只能從2開始,所以32
就是20這個地方事實上是空白。這ASCII表裏頭20是空白,就是16進位
20,32是空白。有這個以後呢我們就可以查到,比如說你想知道說 比如說,100印出來是多少?100的話是64,
我就知道印出來會是d,因為6-4 6*16=96,在加4後100,所以ASCII表的100,
你查找出來的字元,相對的字元應該是d。這是一個 很簡單的程式,各位可以看一下,也就是說我怎樣用兩次迴圈,
用計算的方式把這個東西印出來。然後特別注意這邊要換行,
不然很多就會全部弄在一起。然後前面這排呢,讓你知道說往下怎麼對,這個,
事實上,這是我們剛剛看到,在這邊這排印出來的,這特別位子是對的,
所以,真正ASCII表應該是從這邊這樣開始,從這邊到這個角,不含前面這些東西, 這樣子。
那,我們一般會
知道的就是說,特別注意就是說,小寫字母的ASCII事實上和大寫字母一樣大的,比如說小- 寫字母的A,
就是16進位是61,就是十進位的6*16+1變97。那大寫字母呢,實際上它是41,
41的話就是65,所以在ASCII表裡頭事實上小寫字母的值會是比較大的。