分享: 
                     
					 
						  
					 
					 
						  
					 
					 
						  
					 
                    
                    
                    	
                    
                      ▲
                    
                    
                    
                      
                     
                     
                     
                     
                    
                    
                    
                      
                          
                          
                      
                       
                      
                      
                      
        
                          int main()  {   char words[10];   cout<<"Please input the strings:";   cin>>words;                //輸入一串字串   for(int i=0;i<strlen(words);i++)   {a(words[ i ]);           //按照順序把字串中的每一個字丟進 a 這個函式裡   cout<<" ";     }   system("pause");      return 0;     } 主程式其實不困難..大概就這樣.. 接下來看 a 這個函式..  int a(char c)  {   int i=0;   i=c;            //把丟進來的字元轉換成數字..如字元 A 就等於 65..這個查 ASCII 碼表就有了..   fib(i);       //再把轉換後的數字丟到 fib 函式中..  } 這個 fib 函式才是這支程式主要的核心.. 也就是要怎麼把數字變成二進位.. 這裡用到遞迴的寫法..建議你可以先看一下書中遞迴的說明..  int fib(int i)   {   int k;   if(!i)return 0;          //如果傳進來的 i 值是 0 的話..就結束..這個寫法的說明請見底下註解一   k=i%2;                 //k 的值是 i 除 2 取餘數..所以如果 i = 2..那 k = 0   fib(i/2);                 //再把 i/2 的值丟到 fib 函式中運算..自己呼叫自己..這就是遞迴..   cout<<k;             //把剛剛 k 的值印出來..  } 假設 i 的值是 3..那整個 fib 的執行過程如下: fib(3):   因為 i = 3..不等於 0 所以繼續往下執行..   k = 3 % 2 = 1   fib(3/2)..無條件捨去..   所以是 fib(1)     因為 i = 1不等於 0 所以繼續往下執行..     k = 1 % 2 = 1     fib(1/2)..無條件捨去..     所以是 fib(0)       因為 i = 0 所以就結束了..又因為是遞迴..所以會往回繼續執行..    回到 fib(1)..印出 k 的值 = 1    底下沒有程式碼了..結束.. 回到 fib(3)..印出 k 的值 = 1 所以整個印出的順序是 11 也就是 3 的二進位碼.. 希望這段回文對你有幫助..
  註解一: if (!i) 我們知道 if () 括號裡如果為 True..就會執行xx動作.. 那我們來看看這段程式碼..if(!i)return 0; 如果 i = 0 的話..會發生什麼狀況.. if (!0) ..0 是 False ..所以加上個 ! 運算子..就反過來..變成 True 了.. 也就是說.. if(!i)return 0; 如果當 i = 0 也就是 False 的時候..就 return 0.. 
                    
                    
                     
        
                   |