Go random uint8 and uint16
September 22, 2022
The standard math/rand package
1 does not contain functions to generate random uint8 or uint16 numbers.Â// Don't forget to rand.Seed(...)
func RandUint16() uint16 {
return uint16(rand.Intn(math.MaxUint16 + 1))
}
func RandUint8() uint8 {
return uint8(rand.Intn(math.MaxUint8 + 1))
}
Why the +1?
Because the rand.Intn(int)
2 function states that the upper bound is not inclusive. Thus meaning we will never be able to reach the highest possible number that an uint8 or uint16 can hold, unless we increment the the math.MaxUintX value by one.// Intn returns, as an int, a non-negative pseudo-random number in the half-open interval [0,n).
// It panics if n <= 0.
Comments
References
1
2
go/rand.go at d7df872267f9071e678732f9469824d629cac595 · golang/go · GitHub
https://github.com/golang/go/blob/d7df872267f9071e678732f9469824d629cac595/src/math/rand/rand.go#L169
cached copyTags