如果 y 大于 64,为什么 pow 的结果为零?
package main
import (
"fmt"
)
func pow(x uint64, y uint64) uint64 {
if y > 64 {
return 0
}
var result uint64 = 1
var counter uint64
var previous uint64
for y > 0 {
previous = result
result = result * x
y = y - 1
counter++
if result == 0 {
return previous
}
}
return result
}
func main() {
result1 := pow(2, 64)
fmt.Println(result1)
result2 := pow(2, 32)
fmt.Println(result2)
result3 := pow(2, 3)
fmt.Println(result3)
}
我刚刚意识到这是因为它在base 2中。您对此有何看法?(我对编程和 golang 还是很陌生。)
Helenr
相关分类