大数据量处理

核心内容摘要

YOLOE在智能安防场景落地:YOLOE官版镜像实现人员+车辆+异常物实时检测
从零到一:如何用STM32打造一个高性价比的智能窗帘系统

强烈安利 9个降AIGC软件:自考降AI率必备工具深度测评

题目链接

两整数之和 - 力扣LeetCode

题目要求给你两个整数a和b不使用运算符和-计算并返回两整数之和。

示例 1输入a 1, b 2输出3示例 2输入a 2, b 3输出5

解决思路分析这道题要求我们求两数之和但是又不允许使用-运算符所以我们可以使用位运算来解决这道问题本体需要使用的是异或和与位运算在位运算中存在这样两个结论①异或的结果是无进位相加的结果 ②相与的结果是各位的进位只需要将两个数异或的结果与相与的结果向左移一位再相加就是最终结果但是本体又不允许使用加减运算符而上述的两个步骤就等同于相加所以我们只需要循环重复这两个步骤知道进位为零就可以了。

算法原理①异或结果为无进位相加任何数字都可以转成二进制在二进制中如果两个数不相同异或结果就是1相同就是0相同的结果有两种“00”、“11”“00”相加结果就是0而11相加结果是进位1所以该位还是0两个不同的数字“01”异或后1相加也为1所以该位就是1由上可知异或的结果就是无进位相加的结果。

②相与的结果就是该位的进位数这点很简单如果两位都为1那么两位相加就要进1而相与后结果就是1如果两位中有一个为0相加后都不需要进位与相与结果都为0所以说相与的结果就是该位的进位数。

注意求出相与的结果后需要向左移一位再与相异的结果相加因为相与的结果是该位的进位还没进呢向左移一位就是进了。

代码展示int getSum(int a, int b) { while(b) { int x a ^ b; int carry (a b) 1; a x; b carry; } return a; }

免费版9.1免费版-免费版9.1免费版应用

百度百家号客服电话人工服务

123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123