zoukankan      html  css  js  c++  java
  • 位运算 —— 一个数二进制形式尾端为 0 的个数

    所谓一个数二进制形式尾端为 0 的个数,比如对于 40 而言,其二进制形式为 101000,则其尾端为 0 的个数为 3,或者也可简单地返回 2^3 = 8;

    Java 语言的 Integer 类其实本身就提供了该接口,

    Integer.numberOfTrailingZeros(n);

    如果现在没有类似 Integer 下的接口的话,还有一个较为 tricky 的方法可以获取尾端为 0 的个数:

    int numOfTrailingZeros = n & -n;
    • 这里得到的不是直接的个数,而是 2k
    • 通过负数在计算机中通过补码表示,便可知 (n&-n) 的道理何在;
  • 相关阅读:
    例图作业
    冲刺第二天
    Day9
    Day8
    Day7
    Day6
    Day5
    Day4
    Day2
    第四次作业——个人作业——软件案例分析
  • 原文地址:https://www.cnblogs.com/mtcnn/p/9423313.html
Copyright © 2011-2022 走看看