implement a64l and l64a (legacy xsi stuff)
This commit is contained in:
parent
e0614f7cd4
commit
ca19774c91
1 changed files with 26 additions and 0 deletions
26
src/misc/a64l.c
Normal file
26
src/misc/a64l.c
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <stdint.h>
|
||||
|
||||
static const char digits[] =
|
||||
"./0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
|
||||
|
||||
long a64l(const char *s)
|
||||
{
|
||||
int e;
|
||||
uint32_t x = 0;
|
||||
for (e=0; e<36 && *s; e+=6, s++)
|
||||
x |= (strchr(digits, *s)-digits)<<e;
|
||||
return x;
|
||||
}
|
||||
|
||||
char *l64a(long x0)
|
||||
{
|
||||
static char s[7];
|
||||
char *p;
|
||||
uint32_t x = x0;
|
||||
for (p=s; x; p++, x>>=6)
|
||||
*p = digits[x&63];
|
||||
*p = 0;
|
||||
return s;
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue