.TH ENCODE 3
.SH NAME
dec64, enc64, dec32, enc32, dec16, enc16, encodefmt \- encoding byte arrays as strings
.SH SYNOPSIS
.B #include <u.h>
.br
.B #include <libc.h>
.PP
.B
int	dec64(uchar *out, int lim, char *in, int n)
.PP
.B
int	enc64(char *out, int lim, uchar *in, int n)
.PP
.B
int	dec32(uchar *out, int lim, char *in, int n)
.PP
.B
int	enc32(char *out, int lim, uchar *in, int n)
.PP
.B
int	dec16(uchar *out, int lim, char *in, int n)
.PP
.B
int	enc16(char *out, int lim, uchar *in, int n)
.PP
.B
int	encodefmt(Fmt*)
.SH DESCRIPTION
.PP
.IR Enc16 ,
.I enc32
and
.I enc64
create null terminated strings.  They return the size of the
encoded string (without the null) or -1 if the encoding fails.
The encoding fails if
.IR lim ,
the length of the output buffer, is too small.
.PP
.IR Dec16 ,
.I dec32
and
.I dec64
return the number of bytes decoded or -1 if the decoding fails.
The decoding fails if the output buffer is not large enough or,
for base 32, if the input buffer length is not a multiple
of 8.
.PP
.I Encodefmt
can be used with
.IR fmtinstall (3)
and
.IR print (3)
to print encoded representations of byte arrays.
The verbs are
.TP
.B H
base 16 (i.e. hexadecimal). The default encoding is
in upper case.  The
.B l
flag forces lower case.
.TP
.B <
base 32
.TP
.B [
base 64 (same as MIME)
.PD
.PP
The length of the array is specified as
.IR f2 .
For example, to display a 15 byte array as hex:
.EX

    char x[15];

    fmtinstall('H', encodefmt);
    print("%.*H\\n", sizeof x, x);

.EE
.SH SOURCE
.B \*9/src/lib9/u32.c
.br
.B \*9/src/lib9/u64.c
