力扣 面试题 05.06. 整数转换

思路:

牵扯到二进制数,基本上要考虑位运算符,相关知识可以见http://t.csdnimg.cn/fzts7

之前做过类似的题目,大致思路就是先用按位异或^找出不同位,再用n&(n-1)计算出不同位的个数,但是这道题有个小坑,就是极限了话,n刚好为int类型的最小值(即二进制数为1000……0000),此时n-1就会溢出。

就是A和B的二进制数刚好是1000……0000和0000……0000,此时n=A^B就是1000……0000,所以此时n再减1就溢出了,因此我们要考虑这个特殊情况

INT_MIN  代表int类型的最小值,即-2147483648

INT_MAX 代表int类型的最大值,即2147483647

定义INT_MIN 只能   INT_MIN = ( - INT_MAX) - 1 

而不能  INT_MIN = - ( INT_MAX + 1)          因为这样就溢出最大值了 

其头文件为#include<limits.h>

int convertInteger(int A, int B)
{int count=0;int n=A^B;while(n){if(n==INT_MIN)   //如果是最小值{count++;     break;}n=n&(n-1);       //减去一个1的个数count++;         }return count;
}

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

11、内网安全-横向移动NTLM-Relay重放Responder中继攻击LdapEws

用途&#xff1a;个人学习笔记&#xff0c;有所借鉴&#xff0c;欢迎指正&#xff01; 目录 前提知识&#xff1a; 一、横向移动-NTLM 中继攻击-Relay 重放-SMB 上线 1、CS权限转给MSF: 2、MSF: 3、添加路由&#xff1a; 4、smb_relay重发模块&#xff1a; 5、受控主机输…

《熬夜整理》保姆级系列教程-玩转Wireshark抓包神器教程(2)-Wireshark在Windows系统上安装部署

1.简介 上一篇主要讲解一下软件的介绍以及软件的抓包原理。 2.安装部署环境 2.1操作系统 1.宏哥的环境是Windows 10版本 64位系统&#xff08;32位的同学自己想办法哦&#xff09;&#xff0c;其实宏哥觉得无论在什么平台&#xff0c;多少位&#xff0c;其实安装都是类似的…

机遇与挑战并存 企业级软件如何突围向上

如果企业级软件能够像TO C产品那样&#xff0c;购买者就是使用者&#xff0c;那企业级软件市场可能会大不一样。不过&#xff0c;事实并非如此。因为无论是商业模式&#xff0c;还是专业程度和用户群体&#xff0c;二者都有显著区别。而这种区别也使得我们不得不从一个全新视角…

压缩感知常用的重建算法

重建算法的基本概念 在压缩感知&#xff08;Compressed Sensing, CS&#xff09;框架中&#xff0c;重建算法是指将从原始信号中以低于奈奎斯特率采集得到的压缩测量值恢复成完整信号的数学和计算过程。由于信号在采集过程中被压缩&#xff0c;因此重建算法的目标是找到最符合…

浅谈建筑能耗监测与智能控制系统

摘要&#xff1a;通过云平台服务功能,对建筑物内传感器数据采集、各类数值量进行互联网上传,在云平台进行大数据分析对比,构建建筑能耗监测、智能控制和管理服务系统,实现对各类建筑能耗情况的统计、分析、诊断和预警等,实现对用电设备进行有效的智能控制与管理,降低用能客户能…

170基于matlab的DNCNN图像降噪

基于matlab的DNCNN图像降噪&#xff0c;网络分为三部分&#xff0c;第一部分为ConvRelu&#xff08;一层&#xff09;&#xff0c;第二部分为ConvBNRelu&#xff08;若干层&#xff09;&#xff0c;第三部分为Conv&#xff08;一层&#xff09;&#xff0c;网络层数为17或者20层…

ChatGPT调教指南 | 咒语指南 | Prompts提示词教程(二)

在我们开始探索人工智能的世界时&#xff0c;了解如何与之有效沉浸交流是至关重要的。想象一下&#xff0c;你手中有一把钥匙&#xff0c;可以解锁与OpenAI的GPT模型沟通的无限可能。这把钥匙就是——正确的提示词&#xff08;prompts&#xff09;。无论你是AI领域的新手&#…

国际阿里云,想要使用怎么解决支付问题

在国内我们很多时候都需要用到国际阿里云&#xff0c;在国际阿里云需要使用就需要支付&#xff0c;自己办理visa卡比较麻烦&#xff0c;那么我们可以使用虚拟卡&#xff0c;虚拟卡办理快速简单 真实测评使用Fomepay的5347支持国际阿里云的支付&#xff0c;秒下卡&#xff0c;不…

Android TV遥控器探索,Android 桌面应用程序

Android TV 的遥控功能是通过红外遥控器或蓝牙遥控器来实现的。下面分别介绍这两种遥控器的工作原理&#xff1a; 红外遥控器&#xff1a; 红外遥控器是最常见的 Android TV 遥控器类型之一。 红外遥控器通过发送红外信号来控制电视或机顶盒。每个按键都有一个特定的红外编码&…

浏览器---浏览器/http相关面试题

1.localStorage和sessionStorage 共同点&#xff1a;二者都是以key-value的键值对方式存储在浏览器端&#xff0c;大小大概在5M。 区别&#xff1a; &#xff08;1&#xff09;数据有效期不同&#xff1a;sessionStorage仅在当前浏览器窗口关闭之前有效&#xff1b;localStorag…

【Unity3D】ASE制作天空盒

找到官方shader并分析 下载对应资源包找到\DefaultResourcesExtra\Skybox-Cubed.shader找到\CGIncludes\UnityCG.cginc观察变量, 观察tag, 观察代码 需要注意的内容 ASE要处理的内容 核心修改 添加一个Custom Expression节点 code内容为: return DecodeHDR(In0, In1);outp…

4.7 Verilog 循环语句

关键词&#xff1a;while, for, repeat, forever Verilog 循环语句有 4 种类型&#xff0c;分别是 while&#xff0c;for&#xff0c;repeat&#xff0c;和 forever 循环。循环语句只能在 always 或 initial 块中使用&#xff0c;但可以包含延迟表达式。 while 循环 while 循…