c語言十進位制轉二進位制八進位制和十六進位制

2021-03-03 21:12:28 字數 721 閱讀 8383

1樓:匿名使用者

這是用遞迴的方法實現各位正序計算、倒序列印的。

舉例說明:

n=10 列印二進位製數

f1(10): 10不等於0呼叫f1(10/2),f1(10)函式至此等待,直到f1(10/2)返回後繼續執行

f1(5): 5不等於0呼叫f1(5/2),f1(5)函式至此等待,直到f1(5/2)返回後繼續執行

f1(2): 2不等於0呼叫f1(2/2),f1(2)函式至此等待,直到f1(2/2)返回後繼續執行

f1(1): 1不等於0呼叫f1(1/2),f1(1)函式至此等待,直到f1(1/2)返回後繼續執行

f1(0): 0等於0,執行return; 結束f1(0)的呼叫返回f1(1)函式繼續執行

列印n%2,1%2=1累計顯示:1,結束f1(1)的呼叫返回f1(2)函式繼續執行

列印n%2,2%2=0累計顯示:10,結束f1(2)的呼叫返回f1(5)函式繼續執行

列印n%2,5%2=1累計顯示:101,結束f1(5)的呼叫返回f1(10)函式繼續執行

列印n%2,10%2=0累計顯示:1010,結束f1(10)的呼叫返回主程式繼續執行

所謂遞迴函式,就是相同的函式不再重複寫,函式名都用乙個,但系統會採取手段達到互相不干擾的效果,你可以理解呼叫f1(10)時是乙個函式,而f1(10)中呼叫f1函式時是另外乙個函式f1',f1用到的引數n或開設的變數與f1『的互不干擾,依此類推來手動跟蹤程式執行。

c語言二進位制八進位制十進位制16進製制怎麼轉換

在程式設計時直接用格式化輸出函式,d表示以十進位制輸出,o表示以八進位制輸出,x表示以十六進位制輸出 這樣可以實現不同進製之間的轉換 c語言程式設計二進位制整數向八進位制 十進位制 十六進位制整數的轉換 include void showbit int n printf d n 2 void sho...

二進位制轉十進位制,二進位制轉化為十進位制的演算法?

有符號數的話,最高位為1 就是最左邊那個 表示負數,這時候就要按位取反再加1,得出來的二進位制正常翻譯成十進位制,然後結果就是負的那個數。無符號數,或者最高位為0的話,直接轉換就行了。二進位制轉化為十進位制的演算法?從最抄低位 最右 算起襲,位上的數字乘以本位的權重。bai,權重就du是2的第幾位的...

十進位制,八進位制,十六進位制,二進位制的英文翻譯

十進位制 decimal system 即1.滿十進一,滿二十進二,以此類推.2.按權,第一位權為10 0,第二位10 1.以此類推,第n位10 n 1 該數的數值等於每位位的數值 該位對應的權值之和。八進位制 octal number system 一種以8為基數的計數法,採用0,1,2,3,4,...