Go 语言提供了对位的内置支持,以在位包的帮助下为预先声明的无符号整数类型实现位计数和操作功能。该包提供了Add()函数,用于求 a、b 和进位进位的和,即 sum = a + b +carry。这里carry的值必须是0或1,否则行为未定义。要访问 Add()函数,您需要借助 import 关键字在程序中添加一个 math/bits 包。
句法:
func Add(a, b, carry uint) (sum, carryout unit)
参数:该函数接受三个uint类型的参数,即a、b和carry。进位参数的值为 1 或 0。
返回值:该函数返回两个uint 类型的值,即sum 和carryout。这里 sum 包含 a + b + 进位的结果,进位为 1 或 0。
示例 1:
// Golang program to illustrate bits.Add() Function
package main
import (
"fmt"
"math/bits"
)
// Main function
func main() {
// Finding sum and carry
// of the specified numbers
// Using Add() function
nvalue_1, carry := bits.Add(2, 3, 0)
fmt.Println("Sum:", nvalue_1)
fmt.Println("Carry:", carry)
}
输出:
Sum: 5
Carry: 0
示例 2:
// Golang program to illustrate bits.Add() Function
package main
import (
"fmt"
"math/bits"
)
// Main function
func main() {
// Finding sum and carry
// of the specified numbers
// Using Add() function
var a, b, carry uint = 4, 5, 1
sum, carryout := bits.Add(a, b, carry)
fmt.Println("Number 1:", a)
fmt.Println("Number 2:", b)
fmt.Println("Carry:", carry)
fmt.Println("Sum:", sum)
fmt.Println("Carry:", carryout)
}
输出:
Number 1: 4
Number 2: 5
Carry: 1
Sum: 10
Carry: 0