bits

package
v1.0.6 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 20, 2019 License: Unlicense Imports: 3 Imported by: 0

Documentation

Overview

Package bits provides bit access operations and binary decoding algorithms.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func WriteUnary

func WriteUnary(bw *bitio.Writer, x uint64) error

WriteUnary encodes x as an unary coded integer, whose value is represented by the number of leading zeros before a one.

Examples of unary coded binary on the left and decoded decimal on the right:

0 => 1
1 => 01
2 => 001
3 => 0001
4 => 00001
5 => 000001
6 => 0000001

func ZigZag

func ZigZag(x int32) int32

ZigZag decodes a ZigZag encoded integer and returns it.

Examples of ZigZag encoded values on the left and decoded values on the right:

0 =>  0
1 => -1
2 =>  1
3 => -2
4 =>  2
5 => -3
6 =>  3

ref: https://developers.google.com/protocol-buffers/docs/encoding

Types

type Reader

type Reader struct {
	// contains filtered or unexported fields
}

A Reader handles bit reading operations. It buffers bits up to the next byte boundary.

func NewReader

func NewReader(r io.Reader) *Reader

NewReader returns a new Reader that reads bits from r.

func (*Reader) Read

func (br *Reader) Read(n uint) (x uint64, err error)

Read reads and returns the next n bits, at most 64. It buffers bits up to the next byte boundary.

func (*Reader) ReadUnary

func (br *Reader) ReadUnary() (x uint64, err error)

ReadUnary decodes and returns an unary coded integer, whose value is represented by the number of leading zeros before a one.

Examples of unary coded binary on the left and decoded decimal on the right:

1       => 0
01      => 1
001     => 2
0001    => 3
00001   => 4
000001  => 5
0000001 => 6

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL