利用位运算做加法
来源:互联网 发布:淘宝pc端是什么意思啊 编辑:程序博客网 时间:2024/05/16 00:25
一直没有注意位运算的使用,无意中看到利用位运算做加法,感觉比较有意思,就学习了下,感觉还挺有趣。现在简单介绍一下,防止以后遗忘。
假设我们要计算1+2的和,其中1的二进制表示为01,2的二进制为10。二进制的加法主要分为三步:
- 对1和2的二进制进行异或(相等为0,不相等为1,即0^0=0,0^1=1)得11。
- 对1和2的二进制进行位与(都为1时才为1,即1&1=1,1&0=0)得00,然后向左移动一位。
- 对1、2步的结果相加,然后重复1、2步,直到不产生进位为止。
下面用一段代码演示:
#include <iostream>using namespace std ;int addFun(int num1 , int num2) ;int main(){ cout<<addFun(1 , 2) ; system("pause") ; return 1 ;}int addFun(int num1 , int num2){ int sum , carry ; do { sum = num1 ^ num2 ; carry = (num1 & num2) << 1 ; num1 = sum ; num2 = carry ; } while (num2 != 0); return sum ;}
0 0
- 利用位运算做加法
- 位运算做加法
- 利用位运算实现加法运算
- 位运算之不用加减乘除做加法.
- 位运算总结2:利用位运算实现加法
- 利用位运算实现两个整数的加法运算
- VC++ 利用位运算实现两个整数的加法运算
- 利用位运算实现两个整数的加法运算
- 面试OR笔试27——位运算做加法
- 位运算实现加法
- 位运算实现加法
- 位运算实现加法
- 位运算 实现加法
- 位运算实现加法
- 位运算实现加法
- 位运算 实现加法
- 位运算实现加法
- 位运算实现加法
- 算法学习笔记--希尔排序
- Java基础Day03笔记
- jquery的$.ajax请求
- 【备忘】尚硅谷SpringMVC视频教程[共60课时]下载
- oracle v$sqlarea 分析SQL语句使用资源情况
- 利用位运算做加法
- 通讯录项目1
- 用flask开发个人博客(4)—— flask中4种全局变量
- 使用异步servlet提升性能
- 微信公众号(一键互粉)增粉平台的源码分享
- Linux经典书籍
- POJ 1287 Networking (最小生成树)
- 自制一个笑话展示网页
- PHP 变量知识整理