收到網友的評論,我前幾天發的「十進位轉二進位」的文章,網友表示沒有程小奔機器人,是否可以做一個scratch版本的,放心!這就安排!
二進位的故事我們這裡就不科普了哈!想要回顧的請移步「百度百科」,嘻嘻
首先 我們來看一下1~16 的一個二進位與十進位的對照表格:
以上表格就是0-16的表達對照
這種方法就是我之前文章的「思路1」,感興趣的網友們可以去看一下我之前的文章
連結→scratch+程小奔機器人實現「進位轉換」(十進位轉二進位)
這次我們主要說一下「短除法」思路解決十進位轉換為二進位
舉兩個例子:23和35
上面這個符號大家可以理解為「23除以2等於12寫在下面,餘1寫在左邊」
這是我們將最下面的1和右側的「餘數」自下向上的連接起來,23轉換為二進位寫成「10111」。這樣的道理可以理解麼?後面兩道題大家在有這種方法試著轉換一下,是不是簡單多了?嘻嘻
這時我們將最下面的1和右側的「餘數」自下向上的連接起來,35轉換為二進位寫成「100011」。
接下來我們開始scratch編程部分啦!
建立三個變量:二進位、商、餘數。看看這三個變量名字是不是跟我們的運算過程很是接近?
每一次運算我們都要進行對2的除法運算,那麼就會產生商和餘數,商再進行運算還會產生新的商和餘數……,餘數積累起來就是我們要的結果「二進位」(這裡大家先簡單地理解一下這個三個變量),大家自己在變量命名的時候也要有意義,不能隨便,很多同學在學習初期就是隨便命名變量,最後自己也不知道是什麼。
接著我們使用「詢問」和「回答」語句塊,對使用者輸入的自然數進行讀取
然後我們使用「重複執行……直到……」語句,對「短除法」的計算進行模擬,
商是使用者輸入的自然數,餘數是除法運算後的結果,二進位初始化為「空」,所以每次的餘數都會在這裡進行連接,接著商再次進行除2運算,等待的1秒是為了減慢運算過程,讓大家看清楚整個計算過程,不然運算一閃而過。
完整的腳本:
最後的行語句,搭建一定可以理解
就是說一下「自然數轉換為二進位的值」,之後等待按下「空格」鍵,再開始新的循環(這就是我使用「重複執行」語句的原因,方便使用者多次使用)
運行界面:
輸入19,顯示「19轉化為二進位結果為:10011」
這裡我們製作了二進位的轉換,大家通過這次的學習,是不是可以嘗試一下「8進位轉換」、「16進位轉換」(16進位牽扯到ABCDEF字母,所以可以使用列表來做),這次的分享就到這裡了,希望可以讓沒有程小奔機器人的同學也體會到學習二進位的快樂!