lowbit 函数 精彩计算。

Posted 安果移不动

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了lowbit 函数 精彩计算。相关的知识,希望对你有一定的参考价值。

计算最低位对应1的数值

比如7的二进制是多少 111 

那么 他的计算方式就是

java

    public int lowBit(int x)
        return x&(x^(x-1));
    
    public int lowBit2(int x)
        return x&-x;
    

Kotlin 

fun lowBit(x: Int): Int 
    return x and (x xor x) - 1


fun lowBit2(x: Int): Int 
    return x and -x

那么我们来试验一下我们的api

package com.example.learn1

fun main() 
    repeat(10) 
        println("当前是:$it 二进制是$it.toUInt().toString(radix = 2) 结果是 $lowBit(it)")
    

fun lowBit(x: Int): Int 
    return x and (x xor (x - 1))


fun lowBit2(x: Int): Int 
    return x and (-x)

非常的正确。

 第二个lowBit也是同样的结果。

 

以上是关于lowbit 函数 精彩计算。的主要内容,如果未能解决你的问题,请参考以下文章

树状数组lowbit()函数原理的解释 x&(x^(x-1)) x&-x

lowbit 计算

lowbit运算

lowbit

笔记:lowbit()

AcWing 801. 二进制中1的个数