Golang 程序检查是否为给定数字设置了第 k 位。
例子
考虑n = 20(00010100), k = 3
这样,结果在关闭之后3次位=> 00010000&(1 <<(4-1))!= 0
解决这个问题的方法-
Step 1 - 定义一个方法,其中 n 和 k 将是参数,返回类型为 int。
步骤 2 - 使用 n & (1<<(k-1)) 执行 AND 运算。
步骤 3 - 如果获得的数字不是 0 ,则设置 n 中的第K个,否则不设置。
示例
package main输出结果import (
"fmt"
"strconv"
)
func CheckKthBitSet(n, k int) int {
return n & (1 << (k-1))
}
func main(){
var n = 20
var k = 3
fmt.Printf("Binary of %d is: %s.\n", n, strconv.FormatInt(int64(n), 2))
flag := CheckKthBitSet(n, k)
if flag !=0 {
fmt.Printf("%d rd bit of %d is aleady set.\n", k, n)
} else {
fmt.Printf("%d rd bit of %d is not set.\n", k, n)
}
}
Binary of 20 is: 10100.3 th bit of 20 is aleady set.
以上是 Golang 程序检查是否为给定数字设置了第 k 位。 的全部内容, 来源链接: utcz.com/z/331813.html