猿问
回到首页
个人中心
反馈问题
注册登录
下载APP
首页
课程
实战
体系课
手记
专栏
慕课教程
c++ 用位运算来计算
输入两个数字a和b用位运算输出a-b的值有多组直到输入EOF...
慕码人8056858
浏览 755
回答 1
1回答
幕布斯7119047
模拟二进制运算。加法运算:将一个整数用二进制表示,其加法运算就是:相异(^)时,本位为1,进位为0;同为1时本位为0,进位为1;同为0时,本位进位均为0。所以,不计进位的和为sum = a^b,进位就是arr = a&b,(与sum相加时先左移一位,因为这是进位)。完成加法直到进位为0.int add(int a, int b) //递归形式{ if(b==0) //递归结束条件:如果右加数为0,即不再有进位了,则结束。 return a; int s = a^b; int c = (a&b)<<1; //进位左移1位,达到进位的目的。 return add(s, c); //再把'和'和'进位'相加。递归实现。}int add(int a, int b) //非递归形式{ int s, c; while(b != 0) { s = a^b; c = (a&b)<<1; a = s; b = c; } return a;
0
0
0
打开App,查看更多内容
随时随地看视频
慕课网APP
相关分类
C++
typedef入门问题
1 回答
继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续