Manpages

NOMBRE

a64l, l64a − realizan la conversión entre enteros largos y base-64

SINOPSIS

#include <stdlib.h>

long a64l(char *str64);

char *l64a(long value);

DESCRIPCIÓN

Estas funciones realizan la conversión entre enteros largos de 32 bits y cadenas ASCII little-endian en base-64 (de longitud cero a seis). Si la cadena usada como argumento para a64l() tiene una longitud mayor que seis, sólo se usarán los seis primeros bytes. Si los enteros largos tienen más de 32 bits, l64a() usa solamente los 32 bits de orden inferior de value, y a64l() extiende el signo de su resultado de 32 bits.

Los 64 dígitos del sistema base 64 son:

’.’

representa un 0

’/’

representa un 1

0-9

representa 2-11

A-Z

representa 12-37

a-z

representa 38-63

Como ejemplo, 123 = 59*64^0 + 1*64^1 = "v/".

OBSERVACIONES

El valor devuelto por a64l() puede ser un puntero a un buffer estático, que será sobreescrito posiblemente por llamadas posteriores.

El comportamiento de l64a() es indefinido cuando value es negativo. Si value es cero, devuelve una cadena vacía.

Estas funciones no funcionan correctamente en las versiones de glibc anteriores a 2.2.5 (ponen los digitos más significativos en primer lugar).

CONFORME A

XPG 4.2, POSIX 1003.1-2001.

VÉASE TAMBIÉN

uuencode(1), itoa(3), strtoul(3)