@@ 0,0 1,40 @@
This is a liblet (a very small library consisting of one header file and
one source file) for working with binary numbers in C.
The header file, `binary.h`, defines two macros for external use, `BIN` and
`BINSTRLEN`. It also declares one function which is defined in the source
file `binary.c`. Additional macros in `binary.h` which begin with `BIN_`
are implementation details and should not be considered part of the defined
The macro `BIN` converts a binary literal number to a `uintmax_t`. For example:
uintmax_t n = BIN(1010);
This will result in the variable `n` having the value `0xa` (the hex
representation of the binary literal `1010`).
The symbolic constant `BINSTRLEN` defines the length of a `uintmax_t`
represented as a string of characters. Its primary use is for declaring an
array large enough to hold the results of `binstr()` (see below):
char *binstr(size_t n, char s[n], uintmax_t b);
This function converts the number `b` to its string representation in base 2.
The least significant `n - 1` bits are stored in the array `s`. The string
will be null terminated.
## See Also
There is no inverse function of `binstr()` provided, as this can be fulfilled
by calling `strtoumax()` with the third paramater (`base`) set to `2`.