广告广告
  加入我的最爱 设为首页 风格修改
首页 首尾
 手机版   订阅   地图  繁体 
您是第 4417 个阅读者
04:00 ~ 4:30 资料库备份中,需等较久的时间,请耐心等候
 
发表文章 发表投票 回覆文章
  可列印版   加为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.111467 second(s),query:16 Gzip disabled
本站由 瀛睿律师事务所 担任常年法律顾问 | 免责声明 | 本网站已依台湾网站内容分级规定处理 | 连络我们 | 访客留言