2022年6月3日 星期五

《禪隱者、電腦程式設計、零和壹發生事件、二》


    已經十年沒有接觸和使用「BASIC–培基語言」了!今農曆新年期間打開「網際網路」關於 VS.NET 近來發展?驚訝地知道從此後不再提供使用「BASIC–培基語言」了!六十年感情從此告別!
    十一歲那年他們還準備電晶體裝置取代磁環裝置(大哥哥訛騙我買套磁環裝置,也就永遠只出現「零和壹」發生事件!後來他再有多一套電晶體裝置,才送給我時並且告知識到「BASIC–培基語言」事件。)
    捨不得這六十年感情使用「BASIC–培基語言」!於是從頭開始拿出所有東西關於「BASIC–培基語言」軟硬件,從頭像新工作人員似的,在網際網路上與大家庭討論,清淨了十年,這些日子也就來了一大群黑客入侵襲擊訊息!連手機於更新一些輔助用件時,也發現被人盜用了我自己的名字(只好在名字後加多個英文字母 a 字!)看來退休才是明智。

我是一隻生物:
我正在熟睡    = 0
我已經睡醒    = 1
我雙手扒樹    = 10
我雙腿彈跳    = 11
我口腹叫嘩    = 110
我口吃蚊蟲    = 111
我是一隻青蛙:
「0、1、10、11、110、111」
我用電腦BASIC編譯程式,以直譯方法解碼為:「我睡醒,扒樹再彈跳並大叫,剛吃了隻蒼蠅。」
黑客追問:「誰是誰?」
沒有那麼簡單的?好戲連續有來,這些東西我不懂的(要改名字的!)

    編譯器(compiler)是一種電腦程式,它會將某種程式語言寫成的原始碼(原始語言)轉換成另一種程式語言(目標語言)。
現代人使用稱為 C 語言,由 C 衍生為 C+、C++、C#。
Base家族。雖然我們在工作中使用最多的是Base64,但是Base家族可不止是只有Base64,除了Base64之外,Base家族還有Base32和Base16。
我們都知道ASCII 編碼,ASCII 編碼是用256(2的8次方)個字元,對二進位資料進行編碼的方式,同樣的
Base64 編碼是用64(2的6次方)個字元,對二進位資料進行編碼的方式
Base32 編碼是用32(2的5次方)個字元,對二進位資料進行編碼的方式
Base16 編碼是用16(2的4次方)個字元,對二進位資料進行編碼的方式
    那Base家族有這麼多編碼形式,為什麼偏偏使用Base64呢?
Base64 編碼是用64(2的6次方)個特定的ASCII字元來表示256(2的8次方)個ASCII字元,也就是說三個ASCII字元經過Base64編碼後變為四個的ASCII字元顯示(公約數為24),編碼後資料長度比原來增加1/3,不足3n用“=”補足。
Base32 編碼就是用32(2的5次方)個特定的ASCII字元來表示256(2的8次方)個ASCII碼,也就是說五個ASCII字元經過Base32編碼後會變為八個ASCII字元顯示(公約數為40),編碼後資料長度比原來增加3/5,不足8n用“=”補足。
Base16 編碼就是用16(2的4次方)個特定的ASCII字元表示256(2的8次方)個ASCII字元,也就是說一個ASCII字元經過Base16編碼後會變為兩個ASCII字元顯示,編碼後資料長度比原來增加一倍,不足2n用“=”補足。
從上面可以看出Base64編碼後,長度增加是最少的,這也是我們選用Base64的一個重要原因。

Base64 簡介
Base64顧名思義,就是基於64個可列印字元來表示二進位資料的一種方法,注意它並不是一種加密演算法。對於64個列印字元,我們只需要6個二進位位元就可以完全表示了。那麼我們如何利用8個二進位位元來表示只需要6個二進位位元就可以完全表示的可列印字元呢?由於2的6次方等於64,所以我們可以將每6個位元為一個單元,對應某個可列印字元。三個位元組有24個位元,對應於4個Base64單元,即3個位元組需要用4個可列印字元來表示。
Base64是從二進位資料到字元的過程。所以電腦中所有的內容,包括文本、圖片、音訊、視頻等等都可以使用Base64編碼來表示。

Base64 編碼原理
Base64編碼就是使用64個字元作為一個基底字元集:
小寫字母a-z、大寫字母A-Z、數位0-9、符號"+"、"/"(再加上作為墊字的"=",實際上是65個字元)
然後,所有其他符號都根據一定規則轉換成這個字元集中的字元。
具體來說,Base64編碼的轉換方式可以分為以下四步:
第一步,將每三個位元組作為一組,一共是24個二進位位元
第二步,將這24個二進位位元分為四組,每個組有6個二進位位元
第三步,在每組前面加兩個00,擴展成32個二進位位元,即四個位元組
第四步,根據下表,得到擴展後的每個位元組的對應符號,這就是Base64的編碼值,給大家演練一下轉換的過程。

查閱 ASCII 表 英文大草字母〝 F 〞二進位 ( 01000110 )= 十進位制 (70)
ASCII 二進位制演算成十進位制
二進位 = ( 01000110 )成十進位制過程
=(128*0)+(64*1)+(32*0)+(16*0)+(8*0)+(4*1)+(2*1)+(0+1)
= 64 + 4 + 2 = 68 + 2 = 70
二進位 ( 01000110 )= 十進位制 (70)

查閱 ASCII 表 英文大草字母:
〝 F U S 〞(Flying Unidentified Subject 不明飛行物)
二進位 ( 01000110 、01010101、01010011)= 十進位制 (70、85、83)

ASCII碼一覽表、ASCII碼對照表
http://c.biancheng.net/c/ascii/

黑客追問:「誰是誰?」
我回答:「我是來這世上搏大霧的,Foggie」
黑客狂叫:「Fight The Fog,搏大霧。」

【粵語講呢啲】揩油.索油.抽水.博懵.博大霧.食豆腐。
《影音介紹 【hkweather 博大霧】》
https://www.youtube.com/watch?v=rgRTiDH7NR0

請撥冗光臨《Blogger - 快樂和尚家僧-Cheerful-HomeMonk、【詭異編】、【忘了我是誰】》
http://cheerfulhomemonk-caricature.blogspot.hk/2018/04/blog-post.html
創作日期:‎星期五 ‎2018年‎四月‎6日    下午 05:13:22

至於如何於運用編輯器編譯電腦程式設計篇?

下回再見!★★★★★ 別開罪那些黑客份子,否則嚇#&*※§?!。

創作日期:‎‎星期六 ‎2022年‎六月‎4日    下午 12:52:03



沒有留言:

張貼留言

《禪隱者、電腦程式設計、零和壹發生事件、完結篇》

     今天香港回歸二十五週年慶(自九七年七月一日,)新人事,新作風,新見證,新背後大國支援,新經濟路線,新一代順利接班,我這老和尚要學習新科技事物,七十二歲從新上路,我相信新明天會更好。 各位朋友,有機會再見,bye-bye! 請撥冗光臨《Blogger - 快樂和尚家僧-C...