1. 程式人生 > >編碼的奧祕:反饋與觸發器

編碼的奧祕:反饋與觸發器

轉自:《編碼的奧祕》    第十四章

 

 

            人人都知道電可以使物體運動。隨便看一眼就會發現,很多家用電器中都裝了電動機,如鍾、風扇,食品加工機、 C D機等等。電也能使揚聲器中的磁芯振動,從而使音響裝置、電視機產生了聲音、話音和音樂。不過,電使物體運動的一個最簡單、最神奇的例子可能是電子蜂鳴器和電鈴。

           將繼電器、電池、開關按如下形式連線:

          如果你覺得它看起來很奇怪,則你還沒有發揮出你的想像力。我們還從未見過如此連線的繼電器。原來的繼電器中,輸入和輸出通常是分開的,這裡卻構成一個閉環。當閉合開關時,電路連通了:


          接通的電路使電磁鐵把金屬簧片拉下來(電流的作用):

            當金屬簧片改變位置後,電路不再完整,電磁鐵失去了磁性,金屬簧片又彈回原來的位置:
          這樣,電路便又一次接通了。可見,只要開關是閉合的,金屬簧片就會上下跳動—使電路閉合或斷開— 並製造一種聲音。如果金屬簧片製造了一種刺耳的聲音,它就構成了一個蜂鳴器。如果金屬簧片附上一把小錘子,再加一個金屬鑼,它就構成了一個電鈴。

             有兩種方法可用來連線繼電器以構造一個蜂鳴器,下面是另一種方法的描述:

         你可能從上述圖中認出了這是第 11章介紹過的反向器,所以電路可以簡化為:


          對於反向器而言,當輸入為 0時,輸出為 1 ;輸入為 1 時,輸出為 0。在該電路中閉合開關會使反向器中的繼電器間斷地閉合和斷開。如果去掉開關,可以使反向器連續地工作,如下圖示:

           這幅圖似乎在演示一種邏輯矛盾,反向器的輸出是和其輸入相反的,但是在這裡,其輸出同時又是其輸入。需要特別指出的是,反向器實際上是一個繼電器,而繼電器從一個狀態轉換到另一個狀態是需要時間的。所以,即使輸入和輸出是相等的,輸出也會很快地改變,成為輸入的倒置(當然,隨即輸出也就改變了輸入,如此反覆)。
           電路的輸出是什麼呢?其實就是提供電壓和不提供電壓之間的變換。或者說輸出要麼是 0,要麼是 1 。

           這個電路稱為振盪器 ,它和我們以前見到的每樣東西都有本質上的區別。以前,所有的電路都靠手動地斷開或閉合開關來改變狀態,而振盪器卻不需要人的干涉,它可以自主地工作。

           當然,單獨的一個振盪器不會有什麼用,但在本章的後面及接下去的幾章裡,你會看到這個電路和其他電路連線後構成了自動控制中一個十分關鍵的部分。所有計算機都靠某種振盪器來使其他部件同步工作。

           振盪器的輸出是 0和1 的交替序列,可以用下圖形象地來表示它:

          圖中,水平軸表示時間,垂直軸表示輸出是 0或1 :

          此圖表示隨著時間的變化,振盪器的輸出在 0和 1 之間交替變化。基於這個原因,振盪器有時稱為 時鐘 ( c l o c k),因為通過對振盪次數記數還可確定時間。

           那麼,振盪器執行的速度有多快呢?也就是說,金屬簧片上下跳動的頻率是多少?每秒有多少次呢?很明顯,這依賴於繼電器是如何構造的。容易想到,一個大的、笨重的繼電器只能遲鈍地上下襬動;而一個小的、輕巧的繼電器可以迅速地跳動。】

           我們把振盪器從某個時間的輸出開始,經歷一段變化又回到同樣輸出的這一段間隔稱為振盪器的一個迴圈( c y c l e):

          一個迴圈所需要的時間稱為振盪器的週期。假設一個振盪器的週期是 0 . 0 5秒,則可以在水平軸上標出時間:

          振盪器的頻率是週期的倒數。本例中,若振盪器的週期是 0 . 0 5秒,則其頻率是 1 ÷ 0 . 0 5秒,即每秒鐘 2 0個迴圈。這表明振盪器的輸出每秒鐘改變 2 0次。

         每秒迴圈數與每小時英里數、每平方英寸磅數、每份食物(飲料)的卡路里數等毋需多解釋的術語一樣是一個很容易理解的概念,但已不常用。為了紀念第一個傳送和接收無線電波的人—魯道夫·赫茲 ( 1 8 5 7- 1 8 9 4 ),我們用“赫茲”這個詞表示每秒的迴圈數。這個用法始於2 0世紀2 0年代的德國,後來傳到其他國家。

           於是,我們可以說這個振盪器的頻率是 2 0赫茲,或直接簡寫為 2 0 H z。

           到目前為止,我們只是在假設一個振盪器的速度。到本章末尾,我們可以構造一種器件來真正地測量一個振盪器的速度。

            為了構造這個器件,先看一個用特殊方式連線的一對或非門。或非門的特點是隻有兩個輸入都為 0時,輸出才為 1 :

    

下圖是含有兩個或非門、兩個開關和一個燈泡的電路:

注意圖中奇特的連線方式:左邊或非門的輸出是右邊或非門的輸入,右邊或非門的輸出是左邊或非門的輸入。這是一種反饋。事實上,這和在振盪器中類似,輸出又返回作為一種輸入。這是本章中大部分電路的特點。

             在上圖電路中,一開始,只有左邊或非門的輸出有電流,因為它的兩個輸入均為 0。現在閉合上面的開關,左邊或非門的輸出變為 0,於是右邊或非門的輸出變為 1 ,燈泡點亮:

            神奇之處在於當你斷開上面的開關時,由於或非門的輸入中只要有一個為 1 ,其輸出就是0,因而左邊或非門的輸出不變,燈泡仍然亮著:
              你不覺得奇怪嗎?兩個開關都斷開著,和第一幅圖一樣,但燈泡卻亮著。這種情形和以前所見到的完全不同。通常,一個電路的輸出僅僅依賴於輸入,這裡的情況卻不一樣。無論斷開或閉合上面的開關,燈泡總是亮著。這裡開關對電路沒有什麼影響,原因是左邊或非門的輸出一直是 0。

              現在閉合下面的開關。由於右邊或非門的輸入中有一個是 1 ,則其輸出變為 0,燈泡熄滅。左邊或非門的輸出此刻變為 1 :


            現在,再斷開下面的開關,燈泡仍舊不亮:
            此電路和初始電路一樣。然而這回卻是下面開關的狀態對燈泡沒有什麼影響。總結起來就是:

             • 閉合上面的開關使燈泡點亮,當再斷開時,燈泡仍然亮著。
             • 閉合下面的開關使燈泡熄滅,當再斷開時,燈泡仍然不亮。

            電路的奇特之處是:有時當兩個開關都斷開時,燈泡亮著;而有時,當兩個開關都斷開時,燈泡卻不亮。當兩個開關都斷開時,電路有兩個穩定狀態,這樣的一個電路稱為觸發器。觸發器是 1 9 1 8年在英國射電物理學家 William Henry Eccles(1875 -1 9 6 6 )和 F. W. J o r d a n的工作中發明的。

            觸發器電路可以保持資訊,換句話說,它有記憶性。它可以“記住”最近一次是哪個開關先閉合的。如果你遇到這樣一個觸發器,它的燈泡亮著時,你可以確定最近閉合的是上面的開關;而燈泡滅著時則是下面的開關。

            觸發器和蹺蹺板很像。蹺蹺板有兩個穩定狀態,它不會長期停留在不穩定的中間位置。你只要一看蹺蹺板就知道哪邊是最近被壓下來的。

            觸發器是十分關鍵的工具,儘管你現在可能還沒看出來。它們賦予電路“記憶”,使其知道以前曾有過的狀態。想像一下,如果你沒有記憶力,你該如何去數數,你記不住你剛數過的數,當然也無法確定下一個數是什麼。同樣,一個能計數的電路(本章後面要提到)必定需要觸發器。

            觸發器有很多種,剛才所看到的是最簡單的一種,稱為 R - S(或 R e s e t - S e t,復位 /置位)觸發器。下面以對稱的方式把它重新繪出來:

            用於點亮燈泡的輸出稱為 Q,另一個輸出 -Q是Q的倒置。如果 Q是0, -Q就是 1 ,反之亦然。兩個輸入端 S( S e t)和 R( R e s e t)分別表示 置位和復位。你可以把“置位”理解為把 Q設為1 ,而“復位”是把 Q設為0。當 S為1 時(對應於前面圖中閉合上面開關的情況), Q變為1 而Q- 變為0;當 R為1 時(對應於前面圖中閉合下面開關的情況) , Q變為 0而-Q變為 1 。當 S和 R都為 0時,輸出保持 Q原來的狀態。輸入與輸出的關係小結於下表中:

這張表稱為功能表 、 邏輯表 或真值表 。它指明不同的輸入組合能產生不同的輸出結果。由於R - S觸發器有兩個輸入端,因而不同的輸入組合有 4種,分別對應於表中的 4行。

              注意表中倒數第 2行中 S和 R均為零,而輸出標識為 Q和 -Q。這表示當 S和 R輸入均為零時,Q和 -Q端的輸出保持 S、 R同時設為 0以前的輸出值。表中最後一行說明 S 和R輸入都為 1 是非法的、禁止的。這是因為 S、 R同時為 1 時,兩個輸出 Q和-Q均為零,這與 Q和Q- 互為倒置的關係相矛盾。所以,當你用 R - S觸發器設計電路時,要避免使 R、 S輸入同時為 1 的情況。

             R - S觸發器通常畫成有兩個輸入,兩個輸出的方塊圖,如下圖所示:
            R - S觸發器能夠記住哪一個輸入端最近被輸入高電位,這確實很有趣。但更有用的電路應該能記住某個特定時間點上上一個訊號是 0還是1 。

             在實際構造這種電路之前,先來思考一下它的行為功能。它需要兩個輸入,其中一個稱為資料端 ( D a t a)。像所有數字訊號一樣,資料端輸入可以是 0或1 。另一個輸入稱為 保持位( Hold that bit)。通常情況下,保持位設為 0,這時,資料端對電路沒什麼影響。當保持位置為1 時,電路就反映出資料端的值。接著,保持位又置為 0,這時,電路將記住資料端輸入的最近一個值。資料端訊號的任何改變不會對電路再有影響。

             換句話說,它的功能表可以這樣寫:
           在前兩種情況下,保持位置為 1 , Q端輸出和資料端輸入相同;後兩種情況下,當保持位置為 0時, Q端輸出和它以前的值相同,即保持原狀態。注意,後兩種情況中當保持位為 0時,Q端輸出不再受資料端輸入的影響,功能表可以簡化表示為:

          X表示不關心其取值情況,它的值對於電路輸出沒有影響。

          基於R-S 觸發器來實現保持位的功能要求在輸入端增加兩個與門,如下圖所示:


           要使與門輸出為 1 ,兩個輸入端必須同時為 1 。在上圖中, Q輸出為0,而-Q輸出為 1 。

          只要保持位置為 0,置位訊號對於輸出就沒有影響:

          同樣,復位訊號對電路輸出也沒有影響:



          只有當保持位訊號是 1 時,電路的功能才和前述的 R - S觸發器相同:


          這時,由於上面與門的輸出和復位端輸入相同,而下面與門的輸出和置位端輸入相同,所以此電路的功能就和普通的 R - S觸發器是一樣的了。

          但我們還沒有達到目標,我們只想要兩個輸入,而不是三個,怎麼辦呢?前面講過 R - S觸發器中兩個輸入同時為 1 的情況是禁止的;而兩個輸入同時為零的情況沒有什麼意義,因為那只是輸出保持不變的簡單情況。這裡,只要將保持位置為 0,就可以完成同樣的功能。

          可見,真正有意義的輸入是 S為0, R為1 或R為0, S為1 。把資料端訊號當作置位訊號,它取反後的值就是復位端訊號,如下圖示:


         在這種情況下, S和 R輸入以及輸出 Q均為 0, Q- 為1 。只要保持位為 0,資料端輸入對於電路輸出就沒有影響:

          當保持位為 1 時,電路反映出資料端輸入的值:

            Q端輸出現在和資料端輸入是一致的, Q- 則相反。現在,保持位又回到 0:



            這時,電路會記得當保持位最後一次置為 1 時資料端輸入的值。資料端以後的變化對電路的輸出沒有影響


           這個電路稱為電平觸發的 D型觸發器 , D( D a t a)表示資料端輸入。所謂 電平觸發 是指當保持位輸入為某一特定電平(本例中為“ 1 ”)時,觸發器才對資料端的輸入值進行儲存。 (很快,你將會看到另一種形式的觸發器。 )

            通常情況下,當這樣一個電路出現在書中時,輸入並不被標為保持位,而是標為“時鐘”。當然,這個訊號並不是一個真的時鐘,但它有時卻具有類似鍾一樣的屬性,即在 0和 1 之是有規律地來回變化。但是現在時鐘只是用來指示什麼時候儲存資料:
            把資料端簡寫為 D,時鐘端簡寫為 C l k,其功能表如下所示:



           這個電路就是所謂的電平觸發的 D型鎖存器 ,它表示電路鎖存住一位資料並保持至將來使用。它也可以稱為 1 位儲存器 。本書將在第 1 6章中說明如何將多個 1 位儲存器連起來以構成多位儲存器。

            在鎖存器中儲存多位值是很有用的。假如你想用第 1 2章中的加法機把三個 8位數加起來,你可以在第 1 行開關上輸入第一個加數,在第 2行開關上輸入第二個加數,但是你必須把第一次加法運算的結果記錄下來,然後以同樣方式把記下來的結果和第三個加數再用開關輸入。這是十分麻煩的。

            使用鎖存器可以解決這個問題。讓我們把 8個鎖存器整合到一個盒子裡,形成一個 8位鎖存器 。每個鎖存器用到兩個或非門、兩個與門和 1 個反向器。時鐘端輸入是互相連在一起的。結果如下圖所示:

這個鎖存器一次可以儲存 8位數。上面的 8個輸入標為 D0~D7,下面的 8個輸出標為 Q 0~Q 7。左邊的輸入是時鐘( C l k),時鐘訊號通常為 0。當時鍾訊號為 1 時, D端輸入被送到 Q端輸出。當時鍾訊號變為 0時, 8位輸出值保持不變,直到時鐘訊號再次被置為 1 。 8位鎖存器也可以畫成下面的樣子:

下面是 8位加法器 :

           通常(先不考慮上一章的減法), 8個A輸入和 8個B輸入是連在開關上的, C I(進位輸入)端接地, 8個S(和輸出)和 C O(進位輸出)端連著燈泡。

            經修改, 8位加法器的輸出既與燈泡相連,也作為 8位鎖存器的資料端 ( D )輸入。標為“儲存”( S a v e)的開關是鎖存器的時鐘輸入,用於儲存加法器的運算結果:

           標識為 2 - 1 選擇器的方塊是讓你用一個開關來選擇加法器的 B端輸入是取自第 2排開關還是取自鎖存器的 Q端輸出。當選擇開關閉合時,就選擇了用 8位鎖存器的輸出作為 B端輸入。 2 - 1選擇器用了 8個如下電路:
 

 

           如果選擇( S e l e c t)端輸入為 1 ,或門的輸出和 B端輸入是一樣的。這是因為上面與門的輸出和 B端輸入是一樣的,而下面與門的輸出是 0。同樣,如果選擇端輸入是 0,或門的輸出則和A端輸入是一樣的。總結起來如下表所示:
           修改後的加法機中包含了 8個這樣的 1 位選擇器。所有選擇端的訊號輸入是連在一起的。

           改進過的加法機不能很好地處理進位輸出 ( C O )訊號。如果兩個數的相加使進位輸出訊號為1 ,則當下一個數再加進來時,這個訊號就被忽略了。一個可能的解決方法是使加法器、鎖存器、選擇器均為 1 6位寬度,或者至少比你可能遇到的最大的和的位數多一位。這個問題會在第1 7章中專門講述。

           對加法機一個更好的改進方法是完全去掉一排開關,但是這需要先對 D觸發器做一點兒小的改進,對它加一個或門和一個稱為清零( C l e a r)的輸入訊號。清零訊號通常為 0,但當它為1 時, Q輸出為 0,如下圖所示:

           無論其他訊號是什麼,清零訊號總迫使 Q輸出為 0,起到了給觸發器清零的作用。

           你也許還不明白為什麼要設定這個訊號,為什麼不能通過把資料端輸入置 0和時鐘端輸入置1 來使觸發器清零呢?這也許因為我們並不能控制資料端的輸入。下圖中, 8個鎖存器連著 8位加法器的輸出:

       

注意,標識為“相加” ( A d d )的開關此刻控制著鎖存器的時鐘輸入。
             你可能會發現這個加法器比前面那個好用,尤其是當你需要加上一長串數字時。剛開始時,按下清零開關,這個操作使鎖存器輸出為 0,並熄滅了所有的燈泡,同時使加法器的 B端輸入全為 0。接著,通過開關輸入第一個加數,閉合“相加”開關,則此加數反映在燈泡上。再輸入第二個數並再次閉合“相加”開關,由開關輸入的 8位運算元加到前面的結果上,其和輸出到燈泡。如此反覆,可以連加很多數。

            觸發器是電平觸發式的,意思是說只有在時鐘端輸入從 0變到 1 後(即高電平時),資料端輸入的值才能儲存在鎖存器中。注意,在時鐘端輸入為 1 期間 ,資料端輸入的任何改變都將反應在Q或Q- 端的輸出值上。

            對一些應用而言,電平觸發時鐘輸入已經足夠用了;但對另外一些應用來說, 邊沿觸發時鐘輸入更為適用。對於邊沿觸發器而言,只有當時鍾從 0變到 1 的瞬間,輸出才會改變。在電平觸發器中,當時鍾輸入為 0時,資料端輸入的任何改變都不會影響輸出;而在邊沿觸發器中,當時鍾輸入為 1 時,資料端輸入的改變也不會影響輸出。只有在時鐘輸入從 0變到1 的瞬間,資料端的輸入才會影響邊沿觸發器的輸出。

 

            邊沿觸發的 D型觸發器是由兩級 R - S觸發器按如下方式連線而成的:

這時,時鐘輸入既控制著第一級,也控制著第二級。但是應該注意到時鐘訊號在第一級中取了反,這意味著除了當時鍾訊號為零時儲存資料外,第一級工作原理和 D型觸發器完全相同。第二級的輸出是第一級的輸入,當時鍾訊號為 1 時,它們被儲存。總的結論就是隻有當時鐘訊號從0變為1 時,資料端輸入才會儲存下來。

           讓我們進一步分析。下面是處於非工作狀態的觸發器,其資料端、時鐘輸入均為 0, Q端輸出也是 0:


           現在,使資料端輸入為 1 :

         這改變了第一級觸發器狀態,因為時鐘訊號取反後為 1 。但第二級仍保持不變,因為時鐘端輸入仍為 0。現在把時鐘輸入變為 1 :

         這就引起第二級觸發器改變,使 Q端輸出變為 1 。與前面不同的是現在無論資料端輸入如何變化(如變為 0),它也不會影響 Q端的輸出值:


         Q和Q- 端輸出只有在時鐘輸入從 0變到1 的瞬間才發生改變。

         邊沿觸發的 D型觸發器的功能表需要一個新符號來表示這種從 0到1 的瞬時變化,即用一個向上指的箭頭(↑)表示:


         箭頭表示當 C l k訊號從 0變到1 時, Q端輸出和資料端輸入是一樣的,這稱為 C l k訊號的“正跳變”(“負跳變”是從 1 到0的轉換) 。觸發器的符號圖如下所示:


       圖中的小三角符號表示觸發器是邊沿觸發的。

       現在向你展示一個使用邊沿觸發器的電路。先回憶一下本章開始構造的振盪器,振盪器的輸出是在 0和1 之間變化的:

       

        把振盪器的輸出連到邊沿觸發的 D型觸發器的時鐘輸入端,並把 端輸出連到自己的 D輸入端:


         觸發器的輸出同時又是它自己的輸入。 (實際上,這種構造可能是有問題的。振盪器是由來回迅速轉變狀態的繼電器構成的。振盪器的輸出和構成觸發器的繼電器相連,而這些繼電器不一定能跟上振盪器的速度。為了避免這些問題,這裡假設振盪器中繼電器的速度比這個電路中其他地方的繼電器的速度都慢。 )

        觀察下面的功能表,就可以明白電路中發生的情況了。剛開始時, C l k輸入和 Q端輸出都是0,則 Q 端輸出為 1 ,而它和 D輸入是相連的:

       當C l k訊號變回為 0時,不會影響輸出:

        現在C l k訊號再變為 1 。由於 D輸入為 0,則 Q為0且-Q為1 :

         所以 D輸入也變為 1 :

    以上發生的情況總結起來就是:每當 C l k輸入從0變到1 時, Q端輸出就發生改變,或者從 0變到1 ,或者從 1 變到0。看看下面的圖,問題就更清楚了:
      當C l k輸入從 0變到 1 時, D的值(與 的值是相同的)被輸出到 Q端。當下一次 C l k訊號從0變到1 時,同樣會改變 D和 的值。

         若振盪器的頻率是 2 0赫茲(即每秒 2 0次迴圈) ,則 Q的輸出頻率是它的一半,即 1 0赫茲。由於這個原因,這種電路 (其中 輸出依循觸發器的資料端輸入 )稱為分頻器。

          當然分頻器的輸出可以是另一個分頻器的 C l k輸入,並再一次進行分頻。下面是三個分頻器連在一起的情況:

           讓我們來看一下上圖頂部的 4個訊號的變化規律:

         這裡只給出了這幅圖的一部分,因為這個電路會周而復始地變化下去。從這個圖中,有沒有發現使你眼熟的東西?

           提示你一下,把這些訊號標上 0和1 :


          現在看出來了嗎?把這個圖順時針旋轉 9 0度,讀一讀橫向的 4位數字,每一組輸出都對應了十進位制中 0~1 5中的一個數:
           這個電路只具備了一個計數功能,如果再多加上幾個觸發器,它就可能計更多的數。第 8章曾指出在一個遞增的二進位制數序列中,每一列數字在 0和 1 之間變化的頻率是其右邊那一列數字變化頻率的一半,這個計數器模仿了這一點。時鐘訊號每一次正跳變時,計數器的輸出就遞加了 1 。

           可以把8個觸發器集成於一個盒子裡,構成一個 8位計數器:
           這個計數器稱為 8位行波(非同步)計數器,因為每一個觸發器的輸出都成為下一個觸發器的時鐘輸入。變化是沿著觸發器一級一級地傳遞的,最後一級觸發器的變化必定要延遲一些。更復雜的計數器是“並行(同步)計數器”,在這種計數器中,所有輸出是同時改變的。

          輸出端訊號已標識為從 Q0~ Q7, Q0是第一個觸發器的輸出。如果把燈泡連到這些輸出上,就可以把 8位結果讀出來。

         這樣一個計數器的時序圖可以把 8個輸出分開來表示,也可以把它們一起表示,如下圖所示:



            時鐘訊號的每個正跳變發生時,一些 Q輸出可能改變,另一些可能不改變,但總體上是使原來的結果遞增了 1 。

            本章前面曾提到過可以找到某種方法來確定振盪器的頻率,現在這個方法已經找到了。如果把振盪器連到 8位計數器的時鐘輸入上,計數器會顯示出振盪器經歷了多少次迴圈。當計數器總和達到 11111111 時,它又會返回到 0 0 0 0 0 0 0 0。使用計數器確定振盪器頻率的最簡單方法是把計數器的輸出連到 8個燈泡上。當所有輸出為 0時(即沒有一個燈泡點亮),啟動一個秒錶;當所有燈泡都點亮時,停住秒錶。這就是振盪器迴圈 2 5 6次所需要的時間。假設是 1 0秒鐘,則振盪器的頻率就是 2 5 6÷ 1 0,或者說是 2 5 . 6赫茲。

           當觸發器功能增加時,它也變得更復雜。下面這個觸發器稱為具有預置( P r e s e t)和清零功能的 邊沿觸發的 D型觸發器

 

                通常情況下,預置和清零訊號輸入會忽視時鐘和資料端輸入,且均為 0。當預置訊號輸入為1 時, Q變為 1 , 變為0。當清零訊號為 1 時, Q為0, 變為1 (同 R - S觸發器中的 S和R輸入一樣,預置和清零訊號不能同時為 1 )。其他情況下,該觸發器的行為和普通邊沿觸發的 D型觸發器是一樣的。


           電路圖符號可以簡化地用下圖代替:



           現在,我們已經知道如何用繼電器來做加法、減法和計數,是不是很有成就感?因為我們所用的硬體是 1 0 0多年以前就存在的東西,我們還有更多的空間去探索。但是先暫時休息一下,不用再去構造什麼,回過頭來再看看關於數字的問題吧。

(ps:看完的感受是,全程懵逼~)