Scratch與數(shù)學(xué)的整合28
? ? ? ? ? ? ? ? ? ? ? ? ? ? 第28課????????二進(jìn)制(二)
一、課程導(dǎo)入
????????我們平時(shí)算加減法都是按十進(jìn)制算的,那么二進(jìn)制也可以進(jìn)行加減法運(yùn)算嗎?
二、知識(shí)儲(chǔ)備
????????二進(jìn)制的加減法法則:0(2)+0(2)=0(2),0(2)+1(2)=1(2),1(2)+1(2)=0(2),0(2)-0(2)=0(2),1(2)-0(2)=1(2),0(2)-1(2)=1(2)(借位后),1(2)-1(2)=0(2)。
三、例題講解

四、流程圖


五、變量信息
? ? ? ? 編寫二進(jìn)制加法用到的變量:個(gè)位加數(shù)、另一個(gè)個(gè)位加數(shù)、十位和、另一個(gè)十位加數(shù)、十位和、百位加數(shù)、另一個(gè)百位加數(shù)、百位和、千位、結(jié)果
? ? ? ? 編寫二進(jìn)制減法用到的變量:個(gè)位被減數(shù)、個(gè)位減數(shù)、個(gè)位差、百位差、十位被減數(shù)、十位減數(shù)、十位差、結(jié)果
六、代碼示例
我們先來看看二進(jìn)制加法的代碼
? ? ? ? 首先詢問原式的兩個(gè)個(gè)位的加數(shù)。

? ? ? 然后根據(jù)兩個(gè)加數(shù)的和的情況判斷個(gè)位和是0還是1。

? ? ? ? ? 再詢問原式的兩個(gè)十位的加數(shù)。

? ? ? ? 接著對(duì)十位加數(shù)的和是否等于2合并起來分類討論。對(duì)于第一次判斷為不等于2的,要繼續(xù)判斷該兩數(shù)的結(jié)果,如果結(jié)果是2或0,則十位和是1,否則判斷結(jié)果是1,十位和是1。對(duì)于第一次判斷為2的,要繼續(xù)對(duì)該兩數(shù)和判斷,若判斷結(jié)果為1則十位和為0,若第二次判斷與第一次判斷結(jié)果相同,則十位和等于1。

? ? ? ? ? ?接下來再詢問兩個(gè)百位的加數(shù)。

再接下來對(duì)十位+另一個(gè)十位數(shù)+1的變量值的判定結(jié)果(3,2,1,0)中的每一個(gè)情況分類討論,進(jìn)而求出百位和、是否要補(bǔ)上千位。把每個(gè)需要保留的數(shù)位“連接”起來。

最后說出最終的答案。

? ? ? ? 我們?cè)賮砜纯炊M(jìn)制減法的代碼。
? ? ? ? 首先詢問被減數(shù)、減數(shù)。

? ? ? 然后以1為基準(zhǔn)判斷兩數(shù)被減數(shù)減減數(shù)夠不夠減,并根據(jù)情況求個(gè)位差。

? ? ? ? ? 再詢問十位被減數(shù)、減數(shù)。

? ? ? ? 接著根據(jù)個(gè)位差夠不夠減的情況判斷是否會(huì)出現(xiàn)連退位。根據(jù)前面的求個(gè)位差可知,如果執(zhí)行的是2-個(gè)位數(shù)的過程,則說明十位不退位。然后對(duì)十位被減數(shù)和十位減數(shù)的相等或不等關(guān)系進(jìn)行十位差、結(jié)果進(jìn)行分類討論。都等于1就結(jié)果只沒有百位,其余情況結(jié)果只有個(gè)位。

? ? ? ? 反之如果不出現(xiàn)連退位,那么就不受個(gè)位的影響了。那么我們直接判斷十位夠不夠減。這時(shí)單獨(dú)算十位差。一個(gè)數(shù)的最高位不能為0,而二進(jìn)制滿2進(jìn)1,那么百位只能是1。既然百位固定是1了,那么十位必須“連接”上。拿“百位差”變量作為最終結(jié)果。

? ? ? ? ? ?最后說出最終的答案。

七、知識(shí)拓展
????????二進(jìn)制運(yùn)算不僅可以進(jìn)行基本的加減乘除,也可以推廣至多個(gè)數(shù)連加、連乘或乘加。觀察圖片,我們發(fā)現(xiàn)這三幅圖分別是與、或、非邏輯電路。我們用“0”表示燈泡亮,用“1”表示

燈泡不亮,那么我們可知左圖只要有一個(gè)燈泡亮另一個(gè)就必然亮,中間的圖只要電源是開的,可能亮其中任意一個(gè)也可能兩個(gè)全亮。右邊的圖如果燈泡是亮的,則電源處于關(guān)閉狀態(tài),反之同理。于是我們列出真值表來:會(huì)發(fā)

現(xiàn)只有A,B都為1時(shí)“與”布爾值才為1,其余情況都為0,只有A,B,只有A,B都為0時(shí)“或”布爾值才為0,其余情況都為1,A為0時(shí)not(非)A為1。這樣就有了3種邏輯運(yùn)算:與運(yùn)算、或運(yùn)算、非運(yùn)算。可是每種運(yùn)算規(guī)則都對(duì)應(yīng)于哪種算術(shù)規(guī)則呢?將4組A、B的值相加分

別得到的結(jié)果都對(duì)應(yīng)于Aand(與)B、Aor(或)B中的哪個(gè)呢?相乘的呢?,not(非)A又是怎樣否定原數(shù)的?我們列表找一找。我們可以發(fā)現(xiàn),A×B是與運(yùn)算、A+B是或運(yùn)算、最后0元、1之間取反是非運(yùn)算。那運(yùn)算順序呢?算數(shù)四則運(yùn)算應(yīng)該該是先去括號(hào)再乘除后加減吧?那這里邏輯運(yùn)算也應(yīng)遵循這樣的運(yùn)算順序:非運(yùn)算→與運(yùn)算→或運(yùn)算。