news 2026/4/27 21:29:29

剑指Offer 65. 【位运算】不用加减乘除做加法(Easy)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
剑指Offer 65. 【位运算】不用加减乘除做加法(Easy)


【题目链接】

题解

  1. 不用加减乘除做加法(位运算,清晰图解)

思路



代码

classSolution:''' 在计算机系统中,数值一律用补码来表示和存储。因为使用补码,可以将符号位和数值域统一处理,且加法和减法也可以统一处理! 1.原码求补码: 正整数的补码是其二进制表示,与原码相同 负整数的补码,将其原码除符号位外的所有位取反(0变1,1变0,符号位为1不变)后加1 2.补码求原码: 正整数的补码就是原码 负整数的补码的补码是原码 '''### 1206 位运算(36 ms,13.5 MB)defadd(self,a:int,b:int)->int:# 十六进制数 0xffffffff = 1111 1111 1111 1111 1111 1111 1111 1111 = 4294967295x=0xffffffff# 循环迭代后:a表示当前无进位的总和,b表示总的进位# 获取负数的补码:将数字与十六进制数 0xffffffff 相与。可理解为舍去此数字 32 位以上的数字(将 32 位以上都变为 0),从无限长度变为一个 32 位整数a,b=a&x,b&x# 当进位b中还有进位1时(不为0),表示和还未加完,需要继续用位运算来表示相加whileb:# 异或^:表示相加,与运算&结合左移<<:表示计算进位(注意:位运算优先级比逻辑运算高!)a,b=a^b,(a&b)<<1&x# 十六进制数 0x7fffffff = 0111 1111 1111 1111 1111 1111 1111 1111 = 2147483647,表示正的最大有符号数(0表示正)# 若a > 0x7fffffff,则表示a为负数(在Python中是使用补码表示负数),因此需要将此补码还原为负数的原码# a ^ x 运算将 1 至 32 位按位取反; ~ 运算是将整个数字取反;因此, ~(a ^ x) 是将 32 位以上的位取反,1 至 32 位不变returnaifa<=0x7fffffffelse~(a^x)
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/27 21:29:13

魔兽争霸3兼容性修复工具:让经典游戏在现代系统重获新生

魔兽争霸3兼容性修复工具&#xff1a;让经典游戏在现代系统重获新生 【免费下载链接】WarcraftHelper Warcraft III Helper , support 1.20e, 1.24e, 1.26a, 1.27a, 1.27b 项目地址: https://gitcode.com/gh_mirrors/wa/WarcraftHelper 还在为魔兽争霸3在现代Windows系统…

作者头像 李华
网站建设 2026/4/27 21:29:07

c语言完美演绎9-5

/* 范例&#xff1a;9-5 */ #include "file_a.cpp" int b1; /* 全局自动初值0 */ void pp(void) { extern int a; extern int c; int b3; extern int varb_file_b; /* 定义于file_b,于file_a有include */ printf("a%d varb_file_b%d\…

作者头像 李华
网站建设 2026/4/27 21:28:57

ICO图标批量生成工具:参数配置与场景实践

在Windows应用开发和设计工作中&#xff0c;ICO图标文件的制作是一个常见需求。不同于普通的PNG或JPG图片&#xff0c;ICO格式需要包含多种分辨率&#xff0c;并且要处理好透明通道等细节。本文介绍一款桌面端ICO图标生成工具的配置方法和使用场景。工具简介【ico图片制作工具】…

作者头像 李华
网站建设 2026/4/27 21:26:27

Python自动化Android设备:Google官方ADB库实战指南

1. 项目概述&#xff1a;当Python遇见Android&#xff0c;一场开发效率的革命如果你是一名Android开发者&#xff0c;或者对移动应用自动化、测试、设备管理感兴趣&#xff0c;那么你一定对ADB&#xff08;Android Debug Bridge&#xff09;不陌生。这个命令行工具是连接电脑与…

作者头像 李华
网站建设 2026/4/27 21:25:04

Navidrome:打造属于你的私有音乐云服务器终极指南

Navidrome&#xff1a;打造属于你的私有音乐云服务器终极指南 【免费下载链接】navidrome &#x1f3a7; Your Personal Streaming Service 项目地址: https://gitcode.com/gh_mirrors/na/navidrome 你是否厌倦了音乐平台的各种限制&#xff1f;想拥有一个完全由自己掌…

作者头像 李华
网站建设 2026/4/27 21:22:20

Awesome Codex Skills中的Helium MCP:实时新闻和市场数据分析工具

Awesome Codex Skills中的Helium MCP&#xff1a;实时新闻和市场数据分析工具 【免费下载链接】awesome-codex-skills A curated list of practical Codex skills for automating workflows across the Codex CLI and API. 项目地址: https://gitcode.com/GitHub_Trending/aw…

作者头像 李华