1.十進位轉二進位程式說明
重點:將每次的餘數放入到二進位元,因為最後商數都會變成1,所以最後都添加1
十進位也在每次除法後,將商變成新的被除數
思考1:迴圈的終止條件:空格中的數要填什麼呢?
思考2:其中10/2=5 ,新的十進位設為5;5/2=2...1 ,新的十進位設為2
所以第二個藍色的選項應該要選什麼呢?
2.二進位輸出程式說明
輸出順序由下往上,依序由後往前分別從2的0次開始數
程式說明:
二進位的變數先設為空(空白)
用字串組合將清單的數值依序由最末項填入
思考:
1.第一個填入的值是最末項,i應設為什麼?
2.依序往前加入二進位變數,i改變的數應填什麼?
第一次加入1=>二進位=1
第二次加入0=>二進位=10
第三次加入1=>二進位=101
第四次加入0=>二進位=1010
第五次加入0=>二進位=10100
1.將字串變成字元輸入清單中
思考:
如果直接添加字串會怎麼樣?
為什麼要照左邊的順序放?
如何將11000依左邊的順序放到二進位元的清單中?
2.製作二進位的指數積木
指數=0 ,2的次方=1
指數=1, 2的次方=(2的次方 1)*2=2
指數=2,2的次方=(2的次方2)*2=4
指數=3, 2的次方= (2的次方4)*2=8
....以此類推
思考:
新的2的次方=之前2的次方*2,則藍色部份要填入什麼積木?
3.二進位轉成十進位
目標:
將二進位元為1的值,化為2的指數相加
如左圖只需考慮index=4 與index=5的值
且 index=4為2的3次
index=5為2的5次
程式說明:
每個二字位元都要檢查,所以重複清單的長度次數
思考:
(1)只有二進位元的值為1時才需要將他化為2的次方相加,則右圖藍色(1)應放入什麼積木?
(2)例如:
index=4為2的3次
index=5為2的4次
則:
index=n為2的(n-1)次
請問右圖藍色(2)應放入什麼?
另解: 不用條件判斷與子程式(函式積木)