Hello,各位学习编程的小伙伴,今天我们一起看一下leetcode的第371题。
我们先来看一下题目要求。
给你两个整数,要求不使用运算符“+”或者“-”,从而计算并返回两整数之和
示例
输入:a=b=2输出:3
示例
输入:a=b=3输出:5
我们的要求是不使用运算符”+“和”-“,相信很多大佬对这道题心里已经有了思路。没错就是量化交易模拟盘数据接口,位运算。
注:量化交易模拟盘数据接口,位运算就是直接对整数在内存中的二进制位进行操作
对于这道题:我先讲解一下我的思路
当两个数相加时,我们先可以采用一个异或运算将两个数不相同的位数算出来。我们异或运算的原理就是将两个十进制数转换成二进制,从高到底进行位运算只有当两个位都为1时,才为否则为0。
下示例:就可以得出我们的数据是3
如果我们的两位数字之间有两位均为那我们又该如何。
莫慌,待我们降伏它!!!
这时候我们就可以用一个位与运算&去解决它。位与运算:将两个十进制数转换成二进制,从高到底进行位运算只有当两个位都为1时,才为否则为0
示例:
我们可以看到成功的一个一被消去了只留了一个但是结果依旧为这是时候我们让这个结果向左偏移一位即可。向左偏移后,最右的位置会自动填补0.
然后我们在编写代码时,将两个结合起来即可。
接下来,附上源码,以及示例2演示。
文章为作者独立观点,不代表股票交易接口观点