Golang程序查找最右边的设置位的位置
例子
考虑n=20(00010100)
现在返回日志2(20&-20)=>2+1=>3
解决这个问题的方法
步骤1-定义一个方法,其中n和是一个参数,返回类型是int。
步骤2-返回log2(n&-n)+1。
示例
package main
import (
"fmt"
"math"
"strconv"
)
func FindRightMostSetBit(n int) int {
if (n & 1) != 0{
return 1
}
return int(math.Log2(float64(n & -n))) + 1
}
func main(){
var n = 20
fmt.Printf("Binary of %d is: %s.\n", n, strconv.FormatInt(int64(n), 2))
fmt.Printf("Position of the rightmost set bit of the given number %d is %d.\n", n, FindRightMostSetBit(n))
}输出结果Binary of 20 is: 10100. Position of the rightmost set bit of the given number 20 is 3.
热门推荐
10 小红书平安祝福语简短
11 生日祝福语大全女孩简短
12 收生日红包祝福语 简短
13 领证幽默祝福语简短
14 法考面试祝福语简短
15 老哥出门祝福语简短语
16 送灯祝福语简短独特
17 幼儿狗年祝福语大全简短
18 好听的元旦简短祝福语