zoukankan      html  css  js  c++  java
  • Leetcode476.Number Complement数字的补数

    给定一个正整数,输出它的补数。补数是对该数的二进制表示取反。

    注意:

    1. 给定的整数保证在32位带符号整数的范围内。
    2. 你可以假定二进制数不包含前导零位。

    示例 1:

    输入: 5 输出: 2 解释: 5的二进制表示为101(没有前导零位),其补数为010。所以你需要输出2。

    示例 2:

    输入: 1 输出: 0 解释: 1的二进制表示为1(没有前导零位),其补数为0。所以你需要输出0。

    class Solution {
    public:
        int findComplement(int num) {
            int n = 0;
            int temp = num;
            while(temp)
            {
                temp /= 2;
                n++;
            }
            temp = 1;
            while(n--)
            {
                num = num ^ temp;
                temp = temp << 1;
            }
            return num;
        }
    };
  • 相关阅读:
    hsdis反汇编java源码工具的使用方法
    final添加内存屏障问题
    Spring-AOP
    Spring-IOC
    IO与NIO
    设计模式学习笔记
    Redis学习笔记
    MySQL优化
    STAR法则
    大文件分割之Linux
  • 原文地址:https://www.cnblogs.com/lMonster81/p/10434081.html
Copyright © 2011-2022 走看看