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