标题:[求助]二进制的加法问题
只看楼主
lscmxl
Rank: 1
等 级:新手上路
帖 子:41
专家分:0
注 册:2006-6-12
 问题点数:0 回复次数:2 
[求助]二进制的加法问题
这只是个子函数(完成二进制加法)程序代码如下:
string qiuhe(string p,string q)
{
string aa,dingyi0,dingyi1,CF;
CF="0";
aa="000000000";
dingyi0="0";dingyi1="1";
for(int k=8;k>=0;k--)
{
if((p[k]+q[k]+CF[0])==2)
{
CF=dingyi1;
aa[k]=dingyi0[0];
}
else if((p[k]+q[k]+CF[0])==1)
{
CF=dingyi0;
aa[k]=dingyi1[0];
}
else if((p[k]+q[k]+CF[0])==0)
{
CF=dingyi0;
aa[k]=dingyi0[0];
}
}
return aa;
}
可是根本无法实现二进制的加法功能,调试时for循环时每个if或else if它都走一遍(还不进入条件内部),理论上是符合情况的走,然后进入,跳出,再进入下一次循环.
我实在是不知道是哪里的问题,故来请教各位.
若有其它好的方法也可以提出来.
请多多指教,谢谢!
搜索更多相关主题的帖子: 二进制 加法 string 
2006-12-23 15:03
netme123
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2006-7-30
得分:0 

#include <iostream>
#include <string>
using namespace std;
int main()
{
string s1="0";
string s2="1";
int total=(s1[0]+s2[0]);;
cout<<"s1="<<s1<<endl;
cout<<"s2="<<s2<<endl;
cout<<"s1+s2="<<total<<endl;
return 0;

}
字符“0”和字符“1”同数字0、1 是不一样的。所以if语句起不到作用!
个人看法呵!

2006-12-29 10:31
lscmxl
Rank: 1
等 级:新手上路
帖 子:41
专家分:0
注 册:2006-6-12
得分:0 

我找到问题所在了,它是取字符相对应的ASCII码运算,自然得不到预期结果.

2006-12-31 16:07



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-111532-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.108045 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved