Go 语言提供了对位的内置支持,以在位包的帮助下为预先声明的无符号整数类型实现位计数和操作功能。该包提供了Div64()函数,用于求 (a, b) 除以 c 的商和余数,即 q = (a, b)/c, r = (a, b)%c 与被除数参数a中位的上半部分和参数b中的下半部分。如果 c == 0(被零除)或 c <= a(商溢出),则此函数恐慌。要访问 Div64()函数,您需要借助 import 关键字在程序中添加一个 math/bits 包。
句法:
func Div64(a, b, c uint64) (q, r uint64)
参数:该函数接受三个uint64类型的参数,即a、b和c。
返回值:该函数返回两个 uint64 类型的值,即 q 和 r。这里 q 被称为商,r 被称为余数。
示例 1:
// Golang program to illustrate bits.Div64() Function
package main
import (
"fmt"
"math/bits"
)
// Main function
func main() {
// Finding quotient and remainder
// Using Div64() function
q, r := bits.Div64(10, 12, 11)
fmt.Println("Quotient:", q)
fmt.Println("Remainder:", r)
}
输出:
Quotient: 16769767339735956015
Remainder: 7
示例 2:
// Golang program to illustrate bits.Div64() Function
package main
import (
"fmt"
"math/bits"
)
// Main function
func main() {
// Finding quotient and remainder
// Using Div64() function
var a, b, c uint64 = 3, 10, 5
q, r := bits.Div64(a, b, c)
fmt.Println("Number 1:", a)
fmt.Println("Number 2:", b)
fmt.Println("Number 3:", c)
fmt.Println("Quotient:", q)
fmt.Println("Remainder:", r)
}
输出:
Number 1: 3
Number 2: 10
Number 3: 5
Quotient: 11068046444225730971
Remainder: 3