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