package bits
import "math/bits"
Package bits implements bit counting and manipulation functions for the predeclared unsigned integer types.
Index ¶
- Constants
- func LeadingZeros(x uint) int
- func LeadingZeros16(x uint16) int
- func LeadingZeros32(x uint32) int
- func LeadingZeros64(x uint64) int
- func LeadingZeros8(x uint8) int
- func Len(x uint) int
- func Len16(x uint16) (n int)
- func Len32(x uint32) (n int)
- func Len64(x uint64) (n int)
- func Len8(x uint8) int
- func OnesCount(x uint) int
- func OnesCount16(x uint16) int
- func OnesCount32(x uint32) int
- func OnesCount64(x uint64) int
- func OnesCount8(x uint8) int
- func Reverse(x uint) uint
- func Reverse16(x uint16) uint16
- func Reverse32(x uint32) uint32
- func Reverse64(x uint64) uint64
- func Reverse8(x uint8) uint8
- func ReverseBytes(x uint) uint
- func ReverseBytes16(x uint16) uint16
- func ReverseBytes32(x uint32) uint32
- func ReverseBytes64(x uint64) uint64
- func RotateLeft(x uint, k int) uint
- func RotateLeft16(x uint16, k int) uint16
- func RotateLeft32(x uint32, k int) uint32
- func RotateLeft64(x uint64, k int) uint64
- func RotateLeft8(x uint8, k int) uint8
- func TrailingZeros(x uint) int
- func TrailingZeros16(x uint16) (n int)
- func TrailingZeros32(x uint32) int
- func TrailingZeros64(x uint64) int
- func TrailingZeros8(x uint8) int
Examples ¶
- LeadingZeros16
- LeadingZeros32
- LeadingZeros64
- LeadingZeros8
- Len16
- Len32
- Len64
- Len8
- OnesCount16
- OnesCount32
- OnesCount64
- OnesCount8
- Reverse16
- Reverse32
- Reverse64
- Reverse8
- ReverseBytes16
- ReverseBytes32
- ReverseBytes64
- RotateLeft16
- RotateLeft32
- RotateLeft64
- RotateLeft8
- TrailingZeros16
- TrailingZeros32
- TrailingZeros64
- TrailingZeros8
Constants ¶
const UintSize = uintSize
UintSize is the size of a uint in bits.
Functions ¶
func LeadingZeros ¶
LeadingZeros returns the number of leading zero bits in x; the result is UintSize for x == 0.
func LeadingZeros16 ¶
LeadingZeros16 returns the number of leading zero bits in x; the result is 16 for x == 0.
func LeadingZeros32 ¶
LeadingZeros32 returns the number of leading zero bits in x; the result is 32 for x == 0.
func LeadingZeros64 ¶
LeadingZeros64 returns the number of leading zero bits in x; the result is 64 for x == 0.
func LeadingZeros8 ¶
LeadingZeros8 returns the number of leading zero bits in x; the result is 8 for x == 0.
func Len ¶
Len returns the minimum number of bits required to represent x; the result is 0 for x == 0.
func Len16 ¶
Len16 returns the minimum number of bits required to represent x; the result is 0 for x == 0.
func Len32 ¶
Len32 returns the minimum number of bits required to represent x; the result is 0 for x == 0.
func Len64 ¶
Len64 returns the minimum number of bits required to represent x; the result is 0 for x == 0.
func Len8 ¶
Len8 returns the minimum number of bits required to represent x; the result is 0 for x == 0.
func OnesCount ¶
OnesCount returns the number of one bits ("population count") in x.
func OnesCount16 ¶
OnesCount16 returns the number of one bits ("population count") in x.
func OnesCount32 ¶
OnesCount32 returns the number of one bits ("population count") in x.
func OnesCount64 ¶
OnesCount64 returns the number of one bits ("population count") in x.
func OnesCount8 ¶
OnesCount8 returns the number of one bits ("population count") in x.
func Reverse ¶
Reverse returns the value of x with its bits in reversed order.
func Reverse16 ¶
Reverse16 returns the value of x with its bits in reversed order.
func Reverse32 ¶
Reverse32 returns the value of x with its bits in reversed order.
func Reverse64 ¶
Reverse64 returns the value of x with its bits in reversed order.
func Reverse8 ¶
Reverse8 returns the value of x with its bits in reversed order.
func ReverseBytes ¶
ReverseBytes returns the value of x with its bytes in reversed order.
func ReverseBytes16 ¶
ReverseBytes16 returns the value of x with its bytes in reversed order.
func ReverseBytes32 ¶
ReverseBytes32 returns the value of x with its bytes in reversed order.
func ReverseBytes64 ¶
ReverseBytes64 returns the value of x with its bytes in reversed order.
func RotateLeft ¶
RotateLeft returns the value of x rotated left by (k mod UintSize) bits. To rotate x right by k bits, call RotateLeft(x, -k).
func RotateLeft16 ¶
RotateLeft16 returns the value of x rotated left by (k mod 16) bits. To rotate x right by k bits, call RotateLeft16(x, -k).
func RotateLeft32 ¶
RotateLeft32 returns the value of x rotated left by (k mod 32) bits.
To rotate x right by k bits, call RotateLeft32(x, -k).
Code:play
Output:Example¶
package main
import (
"fmt"
"math/bits"
)
func main() {
fmt.Printf("%032b\n", 15)
fmt.Printf("%032b\n", bits.RotateLeft32(15, 2))
fmt.Printf("%032b\n", bits.RotateLeft32(15, -2))
}
00000000000000000000000000001111
00000000000000000000000000111100
11000000000000000000000000000011
func RotateLeft64 ¶
RotateLeft64 returns the value of x rotated left by (k mod 64) bits.
To rotate x right by k bits, call RotateLeft64(x, -k).
Code:play
Output:Example¶
package main
import (
"fmt"
"math/bits"
)
func main() {
fmt.Printf("%064b\n", 15)
fmt.Printf("%064b\n", bits.RotateLeft64(15, 2))
fmt.Printf("%064b\n", bits.RotateLeft64(15, -2))
}
0000000000000000000000000000000000000000000000000000000000001111
0000000000000000000000000000000000000000000000000000000000111100
1100000000000000000000000000000000000000000000000000000000000011
func RotateLeft8 ¶
RotateLeft8 returns the value of x rotated left by (k mod 8) bits. To rotate x right by k bits, call RotateLeft8(x, -k).
func TrailingZeros ¶
TrailingZeros returns the number of trailing zero bits in x; the result is UintSize for x == 0.
func TrailingZeros16 ¶
TrailingZeros16 returns the number of trailing zero bits in x; the result is 16 for x == 0.
func TrailingZeros32 ¶
TrailingZeros32 returns the number of trailing zero bits in x; the result is 32 for x == 0.
func TrailingZeros64 ¶
TrailingZeros64 returns the number of trailing zero bits in x; the result is 64 for x == 0.
func TrailingZeros8 ¶
TrailingZeros8 returns the number of trailing zero bits in x; the result is 8 for x == 0.
Source Files ¶
- Version
- v1.11.0-beta.2
- Published
- Jul 19, 2018
- Platform
- windows/amd64
- Last checked
- 44 seconds ago –
Tools for package owners.