29. 數位電路模擬 請撰寫一個程式模擬一個數位電路,輸入是二進位八位元,輸出是二進位四位元。此數位電路具有回饋電路,其功能如下: C(m) = m , if m = 0 or m = 1 C(m) = C(m/2) , if m is even C(m) = C((m+1)/2) , if m is odd 此電路會有一個紀錄器,會記錄跑過幾次回饋迴路,最後輸出為回饋電路跑過的次數,以二進位四位元表示。 例如m=00001010(十進位 10),則電路內部運算回饋電路輸入依序為十進位5,3,2,1 C(10)=C(5)=C(3)=C(2)=C(1) 共跑過四次,則此電路輸出為 0100 (十進位 4) 當輸入-1時,則結束執行。 【輸入說明】 第一行:第一個測試案例資料(二進位八位元) 第二行 : 0 (分隔測試資料) 第三行 : 第二個測試案例資料(二進位八位元) 第四行 : 0 (分隔測試資料) 第五行 : 第三個測試案例資料(二進位八位元) … 第N行 : -1 (結束) 範例輸入說明: 00000000 (第一個測試案例資料,二進位八位元) 0 (分隔測試資料) 11111111 (第二個測試案例資料,二進位八位元) -1 (結束) 【輸出說明】 每一行輸出一個測試案例資料的結果(二進位四位元) 範例輸出說明 0000 (回饋電路跑過的次數為0次,轉成二進位四位元表示方式為0000) 1000 (回饋電路跑過的次數為8次,轉成二進位四位元表示方式為1000) 【測試資料一】 輸入: 00000000 0 11111111 0 00000001 0 10000000 -1 輸出: 0000 1000 0000 0111 【測試資料二】 輸入: 01111110 0 00001000 0 00111100 0 00011000 0 11000011 -1 輸出: 0111 0011 0110 0101 1000 【測試資料三】 輸入: 11000111 0 01110111 0 11110001 0 00001010 0 01010000 0 00000111 -1 輸出: 1000 0111 1000 0100 0111 0011 【隱藏測試資料一】 輸入: 10101010 0 01010101 0 11110000 0 00001111 -1 輸出: 1000 0111 1000 0100 【隱藏測試資料二】 輸入: 10000001 0 00010001 0 00100111 0 00000011 0 00111100 -1 輸出: 1000 0101 0110 0010 0110 【隱藏測試資料三】 輸入: 00001011 0 01111001 0 00001001 0 10011001 0 00001111 0 00011011 -1 輸出: 0100 0111 0100 1000 0100 0101