OnesCount, LeadingZeros, TrailingZeros
bits.OnesCount64(0b10110101) // 5
bits.LeadingZeros8(1) // 7
bits.TrailingZeros32(8) // 3
math/bitsLow-level bit counting, shifting, leading/trailing zeros. Uses CPU instructions where available — very fast.
bits.OnesCount64(0b10110101) // 5
bits.LeadingZeros8(1) // 7
bits.TrailingZeros32(8) // 3
bits.Len(0) // 0
bits.Len(1) // 1
bits.Len(255) // 8
bits.RotateLeft32(1, 4) // 16
bits.ReverseBytes32(0x11223344) // 0x44332211
Add64, Sub64, Mul64, Div64 return carry/borrow/hi halves. Use when implementing big-int primitives or checksums.
hi, lo := bits.Mul64(math.MaxUint64, 2)
fmt.Println(hi, lo)