位运算--01---两数相除

发布时间:2026/8/25 18:15:30

位运算--01---两数相除
提示文章写完后目录可以自动生成如何生成可参考右边的帮助文档文章目录两数相除题目:分析:辅助代码:加 键 乘除法逻辑分析isNeg(int n) 判断一个数是否小于0正常相除逻辑 c a/ba 2的K次方 * b 2的(K-n)次方*b .....最后c b * ( 2^k 2^(k-n)....)return isNeg(a) ^ isNeg(b) ? negNum(res) : res;a ! b 可以转换为 a ^ b怎么解决系统最小值转绝对值最小负数 相反数 也是最小负数分析a是系统最小值, b不是,分2种情况第一种: 如果a是系统最小值,且b等于-1计算机底层规定: 系统最小值比系统最大值多1比如int范围是: -128到127所以leetcode规定: 系统最小值/-1 系统最大值第二种: 如果a是系统最小值,且b不等于-1那么令a1去除以b,后面再去补偿两数相除----总的代码两数相除https://leetcode.com/problems/divide-two-integers题目:分析:除法的意义就在于求a可以由多少个b组成。那么由此我们可得除法的实现求a能减去多少个b做减法的次数就是除法的商。辅助代码:加 键 乘publicstaticintadd(inta,intb){intsuma;while(b!0){suma^b;b(ab)1;asum;}returnsum;}publicstaticintnegNum(intn){returnadd(~n,1);}publicstaticintminus(inta,intb){returnadd(a,negNum(b));}publicstaticintmulti(inta,intb){intres0;while(b!0){if((b1)!0){resadd(res,a);}a1;b1;}returnres;}除法逻辑分析isNeg(int n) 判断一个数是否小于0publicstaticbooleanisNeg(intn){returnn0;}正常相除逻辑 c a/ba 2的K次方 * b 2的(K-n)次方*b …最后c b * ( 2^k 2^(k-n)…)publicstaticintdiv(inta,intb){intxisNeg(a)?negNum(a):a;intyisNeg(b)?negNum(b):b;intres0;for(inti30;i0;iminus(i,1)){if((xi)y){res|(1i);xminus(x,yi);}}returnisNeg(a)^isNeg(b)?negNum(res):res;}isNeg(int n) 先全部转成正数来计算int是32位,0-31,其中第31位表示符号位,一位一位的去做判断(x i) y , x右移去找能大于等于y的,(等同于y左移小于等于x,不过左移,因为符号位的关系,有安全隐患) --------判断K的值是否存在找到符合条件的位数,记录下来 用res res | (1 i);2的k次方存在,对应位数记录为1然后x减去 y i循环return isNeg(a) ^ isNeg(b) ? negNum(res) : res;a ! b 可以转换为 a ^ b怎么解决系统最小值转绝对值最小负数 相反数 也是最小负数分析publicstaticintdivide(inta,intb){if(aInteger.MIN_VALUEbInteger.MIN_VALUE){return1;}elseif(bInteger.MIN_VALUE){return0;}elseif(aInteger.MIN_VALUE){if(bnegNum(1)){returnInteger.MAX_VALUE;}else{intcdiv(add(a,1),b);returnadd(c,div(minus(a,multi(c,b)),b));}}else{returndiv(a,b);}}a 和 b都是系统最小值,则返回1a不是系统最小, b是系统最小值, ,则返回0a是系统最小值, b不是a也不是 ,b也不是----可以直接用上述div(int a, int b)方法a是系统最小值, b不是,分2种情况if(bnegNum(1)){returnInteger.MAX_VALUE;}else{intcdiv(add(a,1),b);returnadd(c,div(minus(a,multi(c,b)),b));}第一种: 如果a是系统最小值,且b等于-1计算机底层规定: 系统最小值比系统最大值多1比如int范围是: -128到127按道理等于系统最大值1,因为计算机底层不存在,系统最大值1所以按leetcode规定,返回系统最大值所以leetcode规定: 系统最小值/-1 系统最大值第二种: 如果a是系统最小值,且b不等于-1那么令a1去除以b,后面再去补偿两数相除----总的代码publicclassCode03_BitAddMinusMultiDiv{publicstaticintadd(inta,intb){intsuma;while(b!0){suma^b;b(ab)1;asum;}returnsum;}publicstaticintnegNum(intn){returnadd(~n,1);}publicstaticintminus(inta,intb){returnadd(a,negNum(b));}publicstaticintmulti(inta,intb){intres0;while(b!0){if((b1)!0){resadd(res,a);}a1;b1;}returnres;}publicstaticbooleanisNeg(intn){returnn0;}publicstaticintdiv(inta,intb){intxisNeg(a)?negNum(a):a;intyisNeg(b)?negNum(b):b;intres0;for(inti30;i0;iminus(i,1)){if((xi)y){res|(1i);xminus(x,yi);}}returnisNeg(a)^isNeg(b)?negNum(res):res;}publicstaticintdivide(inta,intb){if(aInteger.MIN_VALUEbInteger.MIN_VALUE){return1;}elseif(bInteger.MIN_VALUE){return0;}elseif(aInteger.MIN_VALUE){if(bnegNum(1)){returnInteger.MAX_VALUE;}else{intcdiv(add(a,1),b);returnadd(c,div(minus(a,multi(c,b)),b));}}else{returndiv(a,b);}}}

相关新闻

obd-java-api快速上手:Maven接入ELM327蓝牙OBD-II并读取发动机RPM完整教程

obd-java-api快速上手:Maven接入ELM327蓝牙OBD-II并读取发动机RPM完整教程

2026/8/25 18:05:30

obd-java-api快速上手:Maven接入ELM327蓝牙OBD-II并读取发动机RPM完整教程 【免费下载链接】obd-java-api OBD-II Java API 项目地址: https://gitcode.com/gh_mirrors/ob/obd-java-api obd-java-api 是一个开源的 OBD-II Java API 库,专门用于对…

C 语言笔记

C 语言笔记

2026/8/25 18:05:30

笔记会不定期补充更新 数据类型 基本类型数据: 整型 整型 -- int 4字节 短整型 -- short int 2字节 长整型 -- long int 8字节 浮点数【实数】 单精度浮点数 -- float …

深圳大学课程资源分享 | 作业与实验报告合集

深圳大学课程资源分享 | 作业与实验报告合集

2026/8/25 18:05:30

✨ 资源简介 本博客整理了作者在深圳大学学习期间完成的​​多门核心课程​​作业与实验报告,涵盖计算机、物理学、数学等多个学科。所有资料均获得​​A或A​​的成绩,现公开分享供SZUers参考学习。 温馨提示​​:欢迎下载借鉴&#xff0c…

腾讯云OpenClaw全栈AI引擎:重构企业智能体安全与效能标准

腾讯云OpenClaw全栈AI引擎:重构企业智能体安全与效能标准

2026/8/25 19:15:33

1. 项目概述:当企业智能体成为新基建,安全与效能如何兼得?最近和几个做企业数字化转型的朋友聊天,大家不约而同地提到了同一个痛点:AI智能体。这东西现在火得不行,从智能客服、流程自动化到数据分析&#x…

AI Agent架构解析:从OpenClaw到Hermes Agent的设计演进与工程实践

AI Agent架构解析:从OpenClaw到Hermes Agent的设计演进与工程实践

2026/8/25 19:15:33

1. 项目概述:当“爱马仕”闯入AI Agent赛道最近AI圈子里有个事儿挺有意思,一个名叫“Hermes Agent”的新玩家,据说只用了七周时间,就在某些关键指标上追平了老牌劲旅OpenClaw。这标题里“爱马仕”的戏称,既点出了它名字…

丰县办几十桌宴席,选饭店到底看什么?

丰县办几十桌宴席,选饭店到底看什么?

2026/8/25 19:15:33

办几十桌的大型宴席,真要问丰县饭店哪家好,答案其实不在OTA平台的客房评分里,而在后厨动线和宴会厅挑高上。综合酒店胜在住宿配套,专业宴会中心赢在场地规模和出菜效率。选哪家,完全取决于你是要安顿外地亲友&#xff…

Java工程师转型大模型实战:从CRUD到AI系统架构的思维跃迁

Java工程师转型大模型实战:从CRUD到AI系统架构的思维跃迁

2026/8/25 19:15:33

1. 从“CRUD幻觉”到“深水区”:一个Java老兵的视角转变干了十几年Java,从Struts、Spring到微服务全家桶,我一度以为自己的技术栈已经足够“深”了。每天和Controller、Service、DAO打交道,处理着增删改查的业务逻辑,偶…

从收藏到生产力:开源项目高效筛选与工程化落地指南

从收藏到生产力:开源项目高效筛选与工程化落地指南

2026/8/25 19:15:33

你点开 GitHub Trending,看到满屏的“awesome-xxx”、“next-generation”、“revolutionary”,收藏夹里塞满了“starred”却再也没打开过的项目。这几乎是每个开发者的日常。我们追逐开源,因为它代表着前沿、自由和可能性,但更多…

智能体记忆架构:从向量检索到工程实践

智能体记忆架构:从向量检索到工程实践

2026/8/25 19:05:32

这次我们来看一个关于智能体记忆架构的技术话题。如果你正在开发或使用AI智能体,并且被“记忆”问题困扰——比如多轮对话后忘记关键信息、无法在长任务中保持一致性,或者每次新会话都像第一次见面——那么这篇文章会直接切入核心,帮你理清智…

[光学原理与应用-521]:对光的错误理解与纠偏

[光学原理与应用-521]:对光的错误理解与纠偏

2026/8/24 19:53:32

首先光是一种能量的载体和形态,宏观上观察到的光是由无数个微观的光量子组成的,每个光子在产生的瞬间,其在真空的空间中以确定不变的速度沿着一个初始的方向一直向前,在微观层面,每个光量子的运动轨迹是以波函数所展现…

SIP通话转接原理与REFER方法实战解析

SIP通话转接原理与REFER方法实战解析

2026/8/24 19:56:07

1. 通话转接不是“挂断再拨号”,而是SIP会话的动态重定向你有没有遇到过这样的场景:客服坐席A正在和客户通电话,突然需要把这通对话无缝转给专家坐席B,客户完全感知不到中间的断连——既没听到忙音,也没被要求重新拨号…

Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

2026/8/24 21:16:09

1. 为什么选择Kolla-ansible来部署单节点OpenStack?如果你正在寻找一种能把OpenStack从“概念”快速变成“可用的实验环境”的方法,那么Kolla-ansible几乎是当前最主流、最省心的选择。我见过太多人卡在手动编译依赖、配置服务、处理版本冲突的泥潭里&am…

三步把QQ空间历史说说导出到本地:GetQzonehistory 极简指南

三步把QQ空间历史说说导出到本地:GetQzonehistory 极简指南

2026/8/25 0:04:34

三步把QQ空间历史说说导出到本地:GetQzonehistory 极简指南 【免费下载链接】GetQzonehistory 获取QQ空间发布的历史说说 项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory Meta Description:GetQzonehistory 是一个QQ空间历史说…

洛谷 P7912:[CSP-J 2021 T4] 小熊的果篮 ← 双向链表

洛谷 P7912:[CSP-J 2021 T4] 小熊的果篮 ← 双向链表

2026/8/25 0:04:35

【题目来源】 https://www.luogu.com.cn/problem/P7912 【题目描述】 小熊的水果店里摆放着一排 n 个水果。每个水果只可能是苹果或桔子,从左到右依次用正整数 1,2,…,n 编号。连续排在一起的同一种水果称为一个“块”。小熊要把这一排水果挑到若干个果篮里&#x…

Transformers.js 网页端图像抠图实战:零后端 3 行代码返回透明 PNG

Transformers.js 网页端图像抠图实战:零后端 3 行代码返回透明 PNG

2026/8/25 0:04:35

Transformers.js 网页端图像抠图实战:零后端 3 行代码返回透明 PNG 【免费下载链接】transformers.js State-of-the-art Machine Learning for the web. Run 🤗 Transformers directly in your browser, with no need for a server! 项目地址: https:/…

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

2026/8/22 2:02:26

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文写作工具,覆盖选题构思、文献整理、内容生成、格式排版等核心场景,真正帮你高效搞定论文难题。 一、全流程王者:一站式搞定论文全链路(一天定稿首…

导师推荐!2026最新AI论文工具测评与实用推荐

导师推荐!2026最新AI论文工具测评与实用推荐

2026/8/22 4:13:47

2026年真正好用的AI论文工具,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

告别游戏崩溃:XCOM 2模组管理器的智能革命

告别游戏崩溃:XCOM 2模组管理器的智能革命

2026/8/22 1:32:34

告别游戏崩溃:XCOM 2模组管理器的智能革命 【免费下载链接】xcom2-launcher The Alternative Mod Launcher (AML) is a replacement for the default game launchers from XCOM 2 and XCOM Chimera Squad. 项目地址: https://gitcode.com/gh_mirrors/xc/xcom2-lau…