JavaScript实现 function add(num1,num2){ var sum1=num1^num2;//忽略进位,异或 var sum2=(num1&num2)<<1;//与,移位,进位运算 sum=sum1+sum2;//相加 return sum; } console.log(add(12,18));//30 Java实现,控制台输入数据 1 import java.util.Scanner; 2 3 4 public class add { 5 static int
昨天在leetcode做题的时候做到了371,原题是这样的: 371. Sum of Two Integers Calculate the sum of two integers a and b, but you are not allowed to use the operator + and -. Example: Given a = 1 and b = 2, return 3. 因为之前完全没有在实际练习中使用过位运算,所以刚看到这道题目的时候我的第一反应是 1.用乘除代替加减,但是一想,
#include<stdio.h> int add(int a,int b) { if(b==0) return a; int sum,ret; sum=a^b; ret=(a & b)<<1; return add(sum,ret); } void main() { int a=4; int b=5; int sum=0; sum=add(a,b); printf("%d\n",sum); }