剑指offer65. 不用加减乘除做加法 P310

阅读: 评论:0

剑指offer65. 不用加减乘除做加法 P310

剑指offer65. 不用加减乘除做加法 P310

剑指offer65. 不用加减乘除做加法 P310.

题目:写一个函数,求两个整数之和,要求在函数体内不得使用+、-、×、÷

// 把相加结果分为进位和不计进位两个结果 ,这里用递归感觉容易理解

int addSum(int a, int b) {if (a == 0) return b;
//	if (b == 0) return a; 最后等来的肯定是进位先为0,因为进位是靠与运算的,非进位是异或 int no_carry_num = 0, carry_num = 0;  // 存非进位结果,进位结果no_carry_num = a ^ b;    // 异或运算之后存储非进位 carry_num = (a & b) << 1;// 用&看此位是否向高位提供进位,最后左移把进位给高位 return addSum(carry_num, no_carry_num);  // 递归进位和不计进位的值
}

2. 不用新变量,交换两个变量a、b的值 P312

基于加减法                          基于异或          
a = a + b;                          a = a ^ b;
b = a – b;                          b = a ^ b;
a = a – b;                          a = a ^ b;

本文发布于:2024-02-04 17:42:24,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170712861457932.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:加减乘除   加法   剑指
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23