![]() |
|
|
|
#1
|
|||
|
|||
|
Code snippet for converting a byteArray to Base34
Quote:
Howover I have tried that and many others already and this particular one does not work for me, because that code snippet is for bases 2...36. I forgot to state in my first post that the search is for conversion from ByteArray to Base34. So to use this code snippet one has to first convert the byteArray (==BigNumber) to Binary or Base10 and then to Base34. Alternative suggestion is to use BigInteger Library for the division, which I thought I could avoid. |
|
#2
|
|||
|
|||
|
https://en.wikipedia.org/wiki/Base36
Base34 is (0-9), (A-X) Example code converted from Base36 Code:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
static char *base34enc(long unsigned int value)
{
char base34[34] = "0123456789ABCDEFGHIJKLMNOPQRSTUVWX";
char buffer[14];
unsigned int offset = sizeof(buffer);
buffer[--offset] = '\0';
do {
buffer[--offset] = base34[value % 34];
} while (value /= 34);
return strdup(&buffer[offset]);
}
static long unsigned int base34dec(const char *text)
{
return strtoul(text, NULL, 34);
}
int main()
{
printf("The number(unsigned long integer) is %lu\n", base34dec("ABCDEF"));
return 0;
}
|
|
#3
|
|||
|
|||
|
@runio
If I am not mistaken the unsigned long integer type should be in the range [0, +18,446,744,073,709,551,615]. Therefore the code snippet will not work for a number like B9DDE784B6FFC653DFEC3E94D6B610 (965075674130144583043497186064512528) or larger. Regards |
![]() |
|
|
Similar Threads
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| Strange string encoding in C code | dila | Source Code | 10 | 04-10-2018 03:45 |
| Code timing snippet | Git | Developer Section | 5 | 01-05-2018 02:05 |
| Any ideas about executing phpinfo() in this code snippet | XnHandt | General Discussion | 0 | 12-28-2012 00:46 |
| How to execute a snippet of code before the main execution! | Android | General Discussion | 8 | 10-04-2006 01:22 |