好,再下来我們要用十進位来印ASCII表。
那之前我們是用十六進位可能不太容易讀,那我們現在就用十進位来讀。好,那,
现在要做的做法就是用十進位来印的话,就我们必须,嗯,把它做到像這樣的结果。先把那個 需要看得
结果輸出,弄出来。我們想完成是這個樣子,好就是说, 嗯,我可以用十進位,比如說,我知道剛剛比如說97
是這邊9,然後這邊7 就得到a。好,這樣要怎麼做呢?所以我們必須先觀察一下說,我們如果想做這個表的話,
對不對? 我們有一些事要完成,就是說,我們先要把這個上面這行 把它印出來。但是前面空幾格留下來?1、2、3這邊讓它空三格。
然後再印這個東西。然後,再來就是說我們,嗯,比如說30幾,四十幾這邊要印一個數值,而這 個數值必須是
兩個欄位,啊,否則的話它會歪掉。如果說你不給它這邊留空格的話,那這留空格又很麻煩, 只要用欄位方法來解決。
那中間會空一行齁,這個如果先記起來等下就方便了,那等下,那這邊怎麼辦?
30313我們知道這些東西是,嗯,像3031這些是印不出來的。所以我們必須說,
我們先判斷說是不是印的出來,如果印不出來我們就把它填一個空格在這邊,讓這個位置不 會歪掉。
所以我們現在就可以回去看我們的程式怎麼寫。
好,所以這個第一行的,哦,第一行這個部分;
这些部分就是印出那個剛才那個表的第一行,各位可以對照著看,是上面這個東西。所以我們
這邊空三格,然後把它印出來。所以我們這邊,確實沒錯這邊空三格。
然後,我們從30 開始因為我們這個表是從32 ,但是我們要從30、31
位子補起來一直到127。好,我們這ASCII表就到127 ,然後我們做這樣的事情。
首先呢,我們先判斷說我們現在目前這個C,這個ASCII表它是不是在最前面? 如果是在最前面的話呢我們必須
把它前面這個幾十幾十的東西印出來。這怎麼判斷呢?我們知道30要印、40要印、5 0要印;
弄錯地方就是說,它們如果去對十去求餘數等於0的時候就要印,那印要怎麼印呢?
那就是说,我們在這邊就是說我們用兩位的這個十進位來印,然後就又空一格。
那印多少呢?我就把這個c呢去除以10,所以,第一次我印30 ,第二次我印40以此類推。
好,所以這是一開始的部分要做這件事情。我們現在回去看一下說我們這個輸出是不是這樣子 。所以,30
的時候 會這邊印出來兩格然後中間空一格,然後兩個欄位,40、50 就這樣一直印;
然後,到最後你就是一百多,110、120就是那樣印,所以我們這個部分就是這樣印東西。
包括後面這個空格。好,所以我們剛剛可以看到這邊有,嗯,你要印幾個
欄位再加上幾個空格。然後,拿那個C去除就可以了。所以,如果碰到前面要這樣子,那碰到 後面那怎麼辦? 那我們先把它跳到後面去看。
那另外你把這個、這個字元處理完了以後你還再來看這個東西,如果它是在後面
如果它是C去對10求余數等於9;那最後面我們就幫它補一個換行。補一個換行的意思就是
印下去了。這個怎麼看呢?所以如果當你處理完9的時候,比如說,39、 49、59
;你要這邊多一個換行把它跳過來,那整個東西才會對。所以,前面跟後面我們要特別注意, 例如說:
30、39 特別處里,40 、49 特別處理;特別處理的方法就是如果說是0的話30、40這種東西的時候你就
在這邊輸入這個前面這個、這個30的這些東西。那如果是碰到9的話,
你只要換行這樣就可以了。那我們現在唯一還沒解釋的就是說,中間怎麼辦?
中間的話它其實蠻簡單,就是說你用這個isprint就是說“可不可以印”來判斷;
如果可以印的話就把它印出來,不能印的話就把它留個空格這樣就可以了。因為如果你不能印
嗯,你硬叫他印的話,他可能印些亂七八糟的東西出來。所以如果不能印的東西,我就叫它印個空 格出來,這樣把位置補齊,
這樣就沒有問題了。所以,我們整個程式執行完了以後結果就會變這樣子。
那我們,那就會像這個樣子,齁。就是我們想要的ASCII表就出來了。
一直到這個127,127可能是一個特殊字元所以它沒辦法畫出來。
那想输出的范围32 到127 可以印出来的部分。要點就是說,我用isprint
這個函式去檢查是否能列印;或是用空白來代表。因為如果它會有一些特殊效果的話我不需要 它印出來,只需要把它
填空白去代替就算了。每一行的開始會印出十進位的前兩位;那後面又會換行,那方法呢?
嗯,就是去檢查這個現在這個數字到底是不是
去對10求餘數位得到0還是9就可以了。那另外有一個很重要的事情就是說,你想要這邊要
對齊,這邊要對齊,那顯然你不能夠直接印,印的話就會3就跑到前面去了。所以,方法就是 說你規定它要留
把兩格,留兩格來,這個之前有介紹過。就是這個2,這個2的意思就是兩格。因為我們
知道我的的東西最多是到127,就是前面這個12的部分,所以兩格是綽綽有餘,兩格就是 剛剛好。
好,後面再來空一個,這樣的話就會排得很整齊。那程式就能 把所有的ASCIIASCII表按照十進位的方式來把它很整齊的把它列印出來。