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