问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

如何用位运算实现整数的加减法

发布网友 发布时间:2022-10-03 12:59

我来回答

1个回答

热心网友 时间:2023-10-10 11:18

如何用位运算实现整数的加减法
位运算的思想可以应用到很多地方,这里简单的总结一下用位运算来实现整数的四则运算。
1.整数加法

[cpp] view plain copy 在CODE上查看代码片派生到我的代码片
int Add(int a,int b)
{
for(int i = 1; i; i <<= 1)
if(b & i)
for(int j = i; j; j <<= 1)
if(a & j) a &= ~j;
else {a |= j; break;}
return a ;
}
我的思路主要是利用a+1的位运算就是最左端(从第0位开始向左)连续的1变为0,原先a中为0的位置最低那一位变为1。
在不同的位上加1,那就是从相应的位开始向左计算,右边不变。
下面还有一个网上的思路,我觉得这个更好:
[cpp] view plain copy 在CODE上查看代码片派生到我的代码片
int Add(int a,int b)
{
if(b == 0) return a;//没有进位的时候完成运算
int sum,carry;
sum = a ^ b;//完成第一步没有进位的加法运算
carry=(a & b) << 1;//完成第二步进位并且左移运算
return Add(sum,carry);//进行递归,相加
}
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
"多难兴邦"这个词,让我们懂得了什么? uc怎么进入阅读模式 进入阅读模式方法介绍 uc怎么进入小说阅读模式 uc浏览器设置阅读模式-uc浏览器设置阅读模式方法 uc电脑阅读模式怎么设置电脑上UC浏览器的阅读模式怎么打开 微信怎么判断对方把你拉黑并且删除了,还是只是拉黑了? 公司诉讼由哪个法院管辖?公司诉讼管辖确定的理论依据? 笔记本电脑开机无法进入系统笔记本电脑开机后无法进入系统 从深圳到乌镇玩三天,花销最少是多少?越少越好,如果有个计划就更好乐 马上快过年放假了,第一次去见岳父,送茅台好还是五粮液好? 小米1元750M流量包如何购买?小米流量包购买教程 笔记本电脑桌面图标只要一点击就总是提示删除快捷方式,系统从装过几 电动车解速后还能恢复吗 我的子宫从后置变前位了? BET吸附法测试前为什么要进行漏气检查?如有漏气应如何处理 bet预处理目的 BET测二氧化碳吸附的步骤 子宫后位怎么容易怀孕 子宫后位什么姿势最容易怀孕 子宫后位怎样的姿势容易怀孕 4、5x10方杉长度规格 右手视频怎么免费看 上海东林方杉林业发展有限公司怎么样? 梦到买帽子意味着什么? 八方杉北方能种植么 徐州停车微信公众号收费合法吗?- 问一问 近似数精确到哪一位怎么看 近似数精确到哪一位的看法介绍 什么是近似数 近似数介绍 广发银行刷pos机,为什么不出凭条 广发信用卡额度一万为什么不能刷2500 位运算详解 用位运算实现加倍操作,写出相应代码 用位运算实现n^2 小米手机,桌面最下面的是什么应用?点开后就是电脑的桌面了,叫什么名字啊? 八卦岭地铁站是几号线地铁-是属于哪个区-八卦岭地铁站末班车时间表 豆瓣怎么把别人从黑名单里拉出来? 安逸花借钱合法吗 魅族美化主题联网权限怎么改拒绝 海贼战队豪快者的音乐原声 榴莲的d101和d197有什么区别呢? d101和d197榴莲的区别在哪里呢? d101和d197榴莲有什么区别啊? 榴莲的d101和d97有什么区别啊? 2500W的设备需要维持30分钟,谁给个UPS规格和价格! 决定UPS电源价格的价格因素有哪些 2022年初级会计考试大纲什么时候出来 裁断机 哪家好? 冲割一体机好用还是分体机好用 光伏压块冲切一体机是具体干啥的 梦见自己在给自己的棺材里面放衣服