不用+号算加法(位运算实现)

news2024/11/24 2:41:09

最近在LeetCode上刷题看到一道非常有意思的题,如何不用+号算加法?我觉得挺有意思的故而分享给大家。


在不能使用 + 号的情况下其实很容易想到运用位运算去解决问题,也就是用二进制去表示十进制加法的逻辑。所以我们可以先拆分十进制加法来帮助理解。

十进制相加思想:例如 15+07 , 先计算不考虑进位的相加结果 12 (因为 5+7 的不考虑进位的结果是 2 ,遇 10 进位),然后计算进位 5+7 进位是 10 ,则 10 与 12 再次相加,得到 22 ,进位为 0 ,则计算到此结束。

到此我们就知道了其实二进制加法也可以像这样分开计算求进位不考虑进位的和当进位为0时结束计算。

具体计算过程如下(例十进制:5 +7):

num1num2进位不考虑进位的相加结果
01010111(0101&0111)<<1得到:1010(0101^0111)得到:0010
进位数与不进位数继续相加10100010(1010&0010)<<1得到:0100(1010^0010)得到:1000
进位为0结束01001000(0100&1000)<<1得到:0000(0100^1000)得到:1100

二进制最后计算结果1100(十进制12)

代码如下:

int Add(int num1, int num2 ) {
    while(num2 != 0) {//进位不为0则持续与相加结果进行相加
        int tmp = num1 ^ num2;//得到每位相加不考虑进位的数据
        num2 = (num1 & num2) << 1;//同1的位相加则会进位
        num1 = tmp;
    } 
    return num1;
}

最后感谢大家观看~

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/893322.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

「2024」预备研究生mem-三角形内心立体几何相接与相切

一、三角形内心&立体几何相接与相切 现场推算&#xff1a; 二、练习题

花费400元,我DIY了一台全志A133平板电脑

项目作者&#xff1a;flyn 简介&#xff1a;DIY爱好者&#xff0c;在立创开源平台开源了个人的DIY项目4G手机MiniPhone以及焊接工具焊台、恒温加热台和多功能控制台。 这是一款基于全志A133处理器DIY的平板电脑&#xff0c;可运行android和linux系统。平板搭载一块7寸1024X600…

sip网络号角喇叭 sip音柱 POE供电广播音箱 ip网络防水对讲终端 sip网络功放

SV-7042TP网络号角喇叭 一、描述 SV-7042TP是我司的一款SIP网络号角喇叭&#xff0c;具有10/100M以太网接口&#xff0c;内置有一个高品质扬声器&#xff0c;将网络音源通过自带的功放和喇叭输出播放&#xff0c;可达到功率30W。SV-7042TP作为SIP系统的播放终端&#xff0c;可…

Docker:Windows container和Linux container

点击"Switch to Windows containers"菜单时&#xff1a; 提示 然后 实际上是运行&#xff1a;com.docker.admin.exe start-service

连接pgsql数据库 sslmode sslrootcert sslkey sslcert 参数的作用

sslmode 参数的作用 sslmode 参数用于指定数据库连接时使用的 SSL 加密模式。SSL&#xff08;Secure Sockets Layer&#xff09;是一种加密协议&#xff0c;用于保护数据在客户端和服务器之间的传输过程&#xff0c;以增加数据传输的安全性。sslmode 参数可以设置不同的值&…

美团滑块模拟登录

本教程仅限于学术探讨&#xff0c;也没有专门针对某个网站而编写&#xff0c;禁止用于非法用途、商业活动、恶意滥用技术等&#xff0c;否则后果自负。观看则同意此约定。如有侵权&#xff0c;请告知删除&#xff0c;谢谢&#xff01; aHR0cHM6Ly9wYXNzcG9ydC5tZWl0dWFuLmNvbS9…

获奖方案|麒麟信安,深入电力调控国产化的最后一公里

从城市到乡村&#xff0c;从工厂车间到田间地头&#xff0c;无形的电力在有形的电网中流淌&#xff0c;支撑着企业生产、人民生活和城市运行。电力是国民经济运行的基础能源&#xff0c;其稳定运行关乎国计民生。 伴随着电力设备大规模接入&#xff0c;电力系统面临巨大的挑战&…

半导体自动化专用静电消除器主要由哪些部分组成

半导体自动化专用静电消除器是一种用于消除半导体生产过程中的静电问题的设备。由于半导体制造过程中对静电的敏感性&#xff0c;静电可能会对半导体器件的质量和可靠性产生很大的影响&#xff0c;甚至造成元件损坏。因此&#xff0c;半导体生产中采用专用的静电消除器是非常重…

QT如何打包

目录 1.windeployqt工具 2.工具位置 3.使用方法 4.注意事项 Qt Creator 默认以动态链接的方式生成可执行文件&#xff0c;该文件无法独立运行&#xff0c;必须为其提供所需的动态链接库。也就是说&#xff0c;只分享 Qt Creator 生成的可执行文件是不行的&#xff0c;必须将…

springBoot 配置文件 flyway 插件相关参数说明

在Spring Boot应用中使用Flyway插件进行数据库迁移时&#xff0c;可以在应用的配置文件中配置相关参数。下面是常用的Flyway配置参数及其说明&#xff1a; flyway.enabled: 是否启用Flyway插件&#xff0c;默认为true&#xff0c;表示启用Flyway插件进行数据库迁移。flyway.ur…

java代码日记--java 基础语法

java代码日记 在线运行 本地运行环境配置 Java 实例 实战 java8 Java 基础语法 一个Java程序可以认为是一系列对象的集合&#xff0c;而这些对象通过调用彼此的方法来协同工作。 下面简要介绍下类、对象、方法和实例变量的概念。 对象&#xff1a;对象是类的一个实例&…

MES生产管理系统如何与ERP系统集成

MES生产管理系统和ERP企业管理系统是制造企业信息化的重要组成部分&#xff0c;它们在生产管理、资源计划和业务流程等方面发挥着重要作用。实现MES与ERP系统的集成&#xff0c;可以更好地优化企业生产流程&#xff0c;提高生产效率和降低成本。本文将探讨MES管理系统解决方案如…

今天来聊一聊单眼三维人脸重建、跟踪及其应用

人脸是计算机视觉中最基本的对象之一&#xff0c;而单眼三维人脸重建和跟踪则是计算机视觉中最具挑战性的任务之一。随着计算机技术的不断发展&#xff0c;单眼三维人脸重建和跟踪已经成为了计算机视觉领域中的热门研究方向之一。 单眼三维人脸重建是指从一张单眼照片中&#x…

苹果手机怎么恢复微信聊天记录?3个方法快速找回

微信是当下十分流行的社交软件&#xff0c;无论是工作还是学习&#xff0c;我们都离不开它。微信里面保存着大量的图片、视频、文件等&#xff0c;能方便我们随时查看&#xff0c;但同时也占据了手机的大量内存。 往往这时候大家就不得不清空一些聊天记录&#xff0c;但事后又…

拒绝摆烂!C语言练习打卡第三天

&#x1f525;博客主页&#xff1a;小王又困了 &#x1f4da;系列专栏&#xff1a;每日一练 &#x1f31f;人之为学&#xff0c;不日近则日退 ❤️感谢大家点赞&#x1f44d;收藏⭐评论✍️ 目录 一、选择题 &#x1f4dd;1.第一题 &#x1f4dd;2.第二题 &#x1f4…

为助力拔尖人才培养,猿辅导投入亿元设立“青少年科学探索基金”

“少年智则国智&#xff0c;少年富则国富&#xff0c;少年强则国强。”国家发展离不开人才的培养。伴随我国进入高质量发展轨道&#xff0c;科学、人才、教育三位一体融合发展已经刻不容缓。我国基础学科人才紧缺成了不争的事实。目前&#xff0c;中国的GDP目前已是世界第二位&…

【Linux】再谈虚拟地址空间

前言 虚拟地址空间对于理解操作系统的许多概念是很有帮助的&#xff0c;这里我们对虚拟地址空间进行更加深入理解&#xff0c;如果以前没有看过对于虚拟地址空间的初级介绍的话&#xff0c;可以先看这里《虚拟地址空间》 再谈虚拟地址空间 一、页表难道真的只是简单一 一存储映…

Arduino 入门学习笔记11 读写内置EEPROM

Arduino 入门学习笔记11 使用I2C读写EEPROM 一、Arduino 内置EEPROM介绍二、EEPROM 操作1. 包含EEPROM库&#xff1a;2. 写入数据到EEPROM&#xff1a;3. 从EEPROM读取数据4. 完整示例&#xff1a; 一、Arduino 内置EEPROM介绍 Arduino的内置EEPROM&#xff08;Electrically E…

iptables四表五链

iptables四表五链 iptables传输数据包的过程 当一个数据包进入网卡时&#xff0c;它首先进入PREROUTING链&#xff0c;内核根据数据包目的IP判断是否是发往本机的。如果数据包就是进入本机的&#xff0c;它就会沿着图向下移动到INPUT链。数据包到了INPUT链后&#xff0c;任何进…

Identity Server 4 传参数到登录界面

Identity Server 4 传参数到登录界面 登录界面取得参数