圖片中的非遞迴程式 convert 定義在一個 C 程式碼片段中,其目的是將傳入的長整型數 m 從十進制轉換成二進制並打印出來。
該程式的工作方式如下:
首先,它聲明了兩個長整型變量 count 和 n,並分別將它們初始化為 -1 和 0。
程式進入第一個 while 循環,在這個循環中,它不斷地將 m 除以 2(向下取整)並將結果存儲回 m,同時將餘數乘以 10 加到 n 上,並且每次迴圈 count 都會增加。這個過程繼續直到 m 變為 0,此時 n 將包含 m 的二進制表示(但是以反轉的形式,最低位在最高位)。
第二個 while 循環進行到 count 變為 0 為止。在這個循環中,n 被除以 10(向下取整),並且其結果的餘數被打印出來,這將以正確的順序逐位打印出 m 的二進制表示。
在循環結束後,打印 n 對 10 取餘數的結果,這是為了打印出最後剩餘的一位數字。
在 main 函式中,從標準輸入讀取一個長整型數 m,呼叫 convert 函式將其轉換成二進制表示,然後打印結果。最後,程式列印一個換行符並返回 0,表示正常結束。
這種方法顯示了一種不使用內置函數或遞迴來手動將一個十進制數轉換成二進制數的算法。這是一個經典的位操作技術,通常用於教學或當內置轉換函數不可用時。