1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > C语言位运算实现加法

C语言位运算实现加法

时间:2018-09-21 13:06:34

相关推荐

C语言位运算实现加法

新建一个单文档工程;

在视类CPP文件头部添加函数声明;

函数体可以加到视类CPP文件尾部;

int Add(int a,int b) { int jw=a&b; int jg=a^b; while(jw) { int t_a=jg; int t_b=jw<<1; jw=t_a&t_b; jg=t_a^t_b; } return jg; }

OnDraw()函数;

void CWysaddView::OnDraw(CDC* pDC){CWysaddDoc* pDoc = GetDocument();ASSERT_VALID(pDoc);// TODO: add draw code for native data hereCString str1;int c1 = Add(100, 99);str1.Format("%d",c1);pDC->TextOut(50, 50, str1);}

输出如下;

原理,

先用1位数的加法来进行,在不考虑进位的基础上,如下 ,

1 + 1 = 0

1 + 0 = 1

0 + 1 = 1

0 + 0 = 0

这几个表达式可以用位运算的“^”来代替,如下

1 ^ 1 = 0

1 ^ 0 = 1

0 ^ 1 = 1

0 ^ 0 = 0

进一步得出2位数相加,推出3位数相加,.....;

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。