leetcode:476. 数字的补数

一、题目

476. 数字的补数 - 力扣(LeetCode)

函数原型:

int findComplement(int num)
二、思路

将num的每一位取出来,取反后,乘以2的位次方,最终所有结果相加即可得到结果。

++如何取出num的每一位?++

num&1:取出num的最低位

num>>1:num算数右移1,最高位补符号位(由于num为整数,所以最高位补0)

++如何将取出的每一位取反?++

(num&1)^1:按位异或1,如果是0则取反为1,如果是1则取反为0
三、代码

cpp 复制代码
int findComplement(int num) {
    int result=0;
    int i=0;
    while(num)
    {
        result+=pow(2,i)*(num&1^1);
        i++;
        num=num>>1;
    }
    return result;
}
相关推荐
郝学胜-神的一滴1 小时前
当AI遇见架构:Vibe Coding时代的设计模式复兴
开发语言·数据结构·人工智能·算法·设计模式·架构
Frostnova丶6 小时前
LeetCode 190.颠倒二进制位
java·算法·leetcode
骇城迷影6 小时前
代码随想录:链表篇
数据结构·算法·链表
专注前端30年7 小时前
智能物流路径规划系统:核心算法实战详解
算法
json{shen:"jing"}7 小时前
字符串中的第一个唯一字符
算法·leetcode·职场和发展
追随者永远是胜利者8 小时前
(LeetCode-Hot100)15. 三数之和
java·算法·leetcode·职场和发展·go
程序员酥皮蛋9 小时前
hot 100 第二十七题 27.合并两个有序链表
数据结构·leetcode·链表
BlockWay9 小时前
西甲赛程搬进平台:WEEX以竞猜开启区域合作落地
大数据·人工智能·算法·安全
马士兵教育9 小时前
程序员简历如何编写才能凸显出差异化,才能拿到更多面试机会?
开发语言·后端·面试·职场和发展·架构
hqyjzsb10 小时前
企业培训ROI深度分析:如何将CAIE认证的显性与隐性成本纳入投资回报率模型
人工智能·考研·职场和发展·创业创新·学习方法·业界资讯·改行学it