GO语言"math/bits"包中"Mul64"函数的用法及代码示例。
用法:
func Mul64(x, y uint64)(hi, lo uint64)
Mul64 返回 x 和 y 的 128 位乘积:(hi, lo) = x * y,乘积位的上半部分在 hi 中返回,下半部分在 lo 中返回。
此函数的执行时间不依赖于输入。
例子:
package main
import (
"fmt"
"math/bits"
)
func main() {
// First number is 0<<64 + 12
n1 := []uint64{0, 12}
// Second number is 0<<64 + 12
n2 := []uint64{0, 12}
// Multiply them together without producing overflow.
hi, lo := bits.Mul64(n1[1], n2[1])
nsum := []uint64{hi, lo}
fmt.Printf("%v * %v = %v\n", n1[1], n2[1], nsum)
// First number is 0<<64 + 9223372036854775808
n1 = []uint64{0, 0x8000000000000000}
// Second number is 0<<64 + 2
n2 = []uint64{0, 2}
// Multiply them together producing overflow.
hi, lo = bits.Mul64(n1[1], n2[1])
nsum = []uint64{hi, lo}
fmt.Printf("%v * %v = %v\n", n1[1], n2[1], nsum)
}
输出:
12 * 12 = [0 144] 9223372036854775808 * 2 = [1 0]
相关用法
- GO Mul32用法及代码示例
- GO MultiReader用法及代码示例
- GO MultiWriter用法及代码示例
- GO MethodSet用法及代码示例
- GO MakeFunc用法及代码示例
- GO Mkdir用法及代码示例
- GO Map用法及代码示例
- GO MkdirTemp用法及代码示例
- GO MakeTable用法及代码示例
- GO Modf用法及代码示例
- GO Mod用法及代码示例
- GO MarshalIndent用法及代码示例
- GO Marshal用法及代码示例
- GO MatchString用法及代码示例
- GO Month用法及代码示例
- GO Match用法及代码示例
- GO MkdirAll用法及代码示例
- GO PutUvarint用法及代码示例
- GO Scanner.Scan用法及代码示例
- GO LeadingZeros32用法及代码示例
注:本文由纯净天空筛选整理自golang.google.cn大神的英文原创作品 Mul64。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。