廣告廣告
  加入我的最愛 設為首頁 風格修改
首頁 首尾
 手機版   訂閱   地圖  簡體 
您是第 4402 個閱讀者
 
發表文章 發表投票 回覆文章
  可列印版   加為IE收藏   收藏主題   上一主題 | 下一主題   
ericfan007 手機
數位造型
個人文章 個人相簿 個人日記 個人地圖
小人物
級別: 小人物 該用戶目前不上站
推文 x5 鮮花 x24
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片
推文 x0
[C/C++][求助] 麻煩幫我解釋這支程式
我剛開始學C++不久,還不太了解,敬請見諒喔

這程式是要輸出2進位的ASCII碼

助教上課講的非常快,邊講邊寫

我趕著抄所以沒去注意聽講

可以麻煩幫我講解一下嗎,謝謝


#include<iostream>
using std: ..

訪客只能看到部份內容,免費 加入會員 或由臉書 Google 可以看到全部內容



[ 此文章被ericfan007在2006-12-09 18:05重新編輯 ]


獻花 x0 回到頂端 [樓 主] From:臺灣 | Posted:2006-12-06 20:06 |
ericfan007 手機
數位造型
個人文章 個人相簿 個人日記 個人地圖
小人物
級別: 小人物 該用戶目前不上站
推文 x5 鮮花 x24
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

請問可以幫忙解答嗎

萬分感謝


獻花 x0 回到頂端 [1 樓] From:臺灣中華HiNet | Posted:2006-12-08 17:25 |
HadesDer
數位造型
個人文章 個人相簿 個人日記 個人地圖
小人物
級別: 小人物 該用戶目前不上站
推文 x0 鮮花 x4
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

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..


獻花 x0 回到頂端 [2 樓] From:台灣台灣索尼 | Posted:2006-12-15 01:19 |

首頁  發表文章 發表投票 回覆文章
Powered by PHPWind v1.3.6
Copyright © 2003-04 PHPWind
Processed in 0.076786 second(s),query:16 Gzip disabled
本站由 瀛睿律師事務所 擔任常年法律顧問 | 免責聲明 | 本網站已依台灣網站內容分級規定處理 | 連絡我們 | 訪客留言