Golang 程序切换给定数字 n 的第 K 位。

go programmingserver side programmingprogramming更新于 2025/5/10 11:22:17

示例

考虑 n = 20(00010100),k = 3。

切换给定数字的第 k 位后:00010000 => 16。

解决此问题的方法

步骤 1 − 定义一个方法,其中 n 和 k 为参数,返回类型为 int

步骤 2 −对 n ^ (1<<(k-1)) 进行 AND 运算。

步骤 3 − 返回运算后的数字。

示例

package main
import (
   "fmt"
   "strconv"
)
func ToggleKthBit(n, k int) int {
   return n ^ (1 << (k-1))
}
func main(){
   var n = 20
   var k = 3
   fmt.Printf("%d 的二进制为:%s.\n", n, strconv.FormatInt(int64(n), 2))
   number := ToggleKthBit(n, k)
   fmt.Printf("切换 %d 后,给定数字的第 3 位为 %d.\n", k, number)
}

输出

20 的二进制为:10100。
切换后,给定数字的第 3 位为 16。

相关文章