zoukankan      html  css  js  c++  java
  • 476. Number Complement(补数)

    Given a positive integer, output its complement number. The complement strategy is to flip the bits of its binary representation.

    Note:

    1. The given integer is guaranteed to fit within the range of a 32-bit signed integer.
    2. You could assume no leading zero bit in the integer’s binary representation.

      Example 1:

      Input: 5
      Output: 2
      Explanation: The binary representation of 5 is 101 (no leading zero bits), and its complement is 010. So you need to output 2.
      

      Example 2:

      Input: 1
      Output: 0
      Explanation: The binary representation of 1 is 1 (no leading zero bits), and its complement is 0. So you need to output 0.
    3. 思路:给定一个正整数,输出它的补数。补数的策略是通过翻转二进位表示。
    4. 1.求出该数的二进制位数; 
      2.通过给定数num和相同位数的二进制数(全为1)进行异或,即可求出补数。
    5.  public int findComplement(int num) {
                  
                  int ans = 0;//the count of the num's bits
                  int temp = num;//copy of the num
                  while(temp != 0){
                      ans++;
                      temp /= 2;
                  }
                  return num ^ (int)(Math.pow(2,ans)-1); 
          }

      pow() 函数用来求 x 的 y 次幂(次方),其原型为:
               double pow(double x, double y);

  • 相关阅读:
    Service Name Port Number Transport Protocol tcp udp 端口号16bit
    linux linux 互传文件 win 不通过 ftp sftp 往linux 传文件(文件夹)
    soft deletion Google SRE 保障数据完整性的手段
    Taylor series
    Taylor's theorem
    Moving average
    REQUEST
    Unix file types
    mysqld.sock
    Tunneling protocol
  • 原文地址:https://www.cnblogs.com/sunli0205/p/6422642.html
Copyright © 2011-2022 走看看