Why is the result of pow zero if y is greater than 64?
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)
}
I just realized that it is because it is in base 2. What can you say about this? (I am still new to programming and with golang.)