View Source grisp_bitmap (grisp v2.8.0)

Bitstring editing and printing.

Summary

Functions

Get a part of a bitstring.

Print binary as hexadecimal numbers.

Print binary as numbers.

Replace a part of a bitsting.

Types

coding()

-type coding() :: bin | binary | dec | decimal | hex | hexadecimal | nib | nibble.

Functions

get_bits(Bin, Start, Len)

-spec get_bits(bitstring(), non_neg_integer(), non_neg_integer()) -> bitstring().

Get a part of a bitstring.

Example

 1> grisp_bitmap:get_bits(<<1,2,3,4,5>>, 6, 2).
 <<1:2>>

get_bytes(Bin, Start, Len)

-spec get_bytes(binary(), non_neg_integer(), non_neg_integer()) -> binary().

Equivalent to get_bits(Bin, Start * 8, Len * 8).

pp(Bin)

-spec pp(bitstring()) -> ok.

Print binary as hexadecimal numbers.

Example

 2> grisp_bitmap:pp(<<16#f2, 17>>).
 F2 11
 ok

pp/2

-spec pp(bitstring(), coding() | #{display => coding()}) -> ok.

Print binary as numbers.

Example

 3> grisp_bitmap:pp(<<16#f2, 17>>, nib).
 1111 0010  0001 0001
 ok
 4> grisp_bitmap:pp(<<16#f2, 17>>, #{display => bin}).
 1111 0010  0001 0001
 ok

set_bits(Bin, Start, Value)

-spec set_bits(bitstring(), non_neg_integer(), bitstring()) -> bitstring().

Replace a part of a bitsting.

Example

5> grisp_bitmap:pp(grisp_bitmap:set_bits(<<2#00000000>>, 6, <<2#1:1>>), bin).
00000010
ok

set_bytes(Bin, Start, Value)

-spec set_bytes(binary(), non_neg_integer(), bitstring()) -> binary().

Equivalent to set_bits(Bin, Start * 8, Value).