digit morphisms: switch char to uint8_t
This commit is contained in:
parent
59c0ea8e57
commit
10dab73876
2 changed files with 18 additions and 29 deletions
|
@ -3,32 +3,33 @@
|
||||||
#include <morphisms/length-prefix.h>
|
#include <morphisms/length-prefix.h>
|
||||||
|
|
||||||
int morph_digit_as_char_to_uint8(
|
int morph_digit_as_char_to_uint8(
|
||||||
char const * restrict src,
|
uint64_t const radix,
|
||||||
|
uint8_t const * restrict src,
|
||||||
uint8_t * restrict dst
|
uint8_t * restrict dst
|
||||||
);
|
);
|
||||||
int morph_digit_as_char_to_uint64(
|
int morph_digit_as_char_to_uint64(
|
||||||
char const * restrict src,
|
uint64_t const radix,
|
||||||
|
uint8_t const * restrict src,
|
||||||
uint64_t * restrict dst
|
uint64_t * restrict dst
|
||||||
);
|
);
|
||||||
int morph_digit_as_uint8_to_char(
|
int morph_digit_as_uint8_to_char(
|
||||||
|
uint64_t const radix,
|
||||||
uint8_t const * restrict src,
|
uint8_t const * restrict src,
|
||||||
char * restrict dst
|
uint8_t * restrict dst
|
||||||
);
|
);
|
||||||
int morph_digit_as_uint64_to_char(
|
int morph_digit_as_uint64_to_char(
|
||||||
|
uint64_t const radix,
|
||||||
uint64_t const * restrict src,
|
uint64_t const * restrict src,
|
||||||
char * restrict dst
|
uint8_t * restrict dst
|
||||||
);
|
);
|
||||||
|
|
||||||
int morph_posint_endianness(
|
int morph_posint_endianness(
|
||||||
uint64_t const radix,
|
uint64_t const radix,
|
||||||
|
|
||||||
struct LengthPrefixUInt64Array const * restrict src,
|
struct LengthPrefixUInt64Array const * restrict src,
|
||||||
struct LengthPrefixUInt64Array * restrict dst
|
struct LengthPrefixUInt64Array * restrict dst
|
||||||
);
|
);
|
||||||
int morph_posint_radix(
|
int morph_posint_radix(
|
||||||
uint64_t const src_radix,
|
uint64_t const src_radix,
|
||||||
uint64_t const dst_radix,
|
uint64_t const dst_radix,
|
||||||
|
|
||||||
struct LengthPrefixUInt64Array const * restrict src,
|
struct LengthPrefixUInt64Array const * restrict src,
|
||||||
struct LengthPrefixUInt64Array * restrict dst
|
struct LengthPrefixUInt64Array * restrict dst
|
||||||
);
|
);
|
||||||
|
|
|
@ -2,7 +2,8 @@
|
||||||
#include <morphisms/length-prefix.h>
|
#include <morphisms/length-prefix.h>
|
||||||
|
|
||||||
int morph_digit_as_char_to_uint8(
|
int morph_digit_as_char_to_uint8(
|
||||||
char const * restrict src,
|
uint64_t const radix,
|
||||||
|
uint8_t const * restrict src,
|
||||||
uint8_t * restrict dst
|
uint8_t * restrict dst
|
||||||
) {
|
) {
|
||||||
if( *src >= '0' && *src <= '9' )
|
if( *src >= '0' && *src <= '9' )
|
||||||
|
@ -18,24 +19,17 @@ int morph_digit_as_char_to_uint8(
|
||||||
}
|
}
|
||||||
|
|
||||||
int morph_digit_as_char_to_uint64(
|
int morph_digit_as_char_to_uint64(
|
||||||
char const * restrict src,
|
uint64_t const radix,
|
||||||
|
uint8_t const * restrict src,
|
||||||
uint64_t * restrict dst
|
uint64_t * restrict dst
|
||||||
) {
|
) {
|
||||||
if( *src >= '0' && *src <= '9' )
|
return morph_digit_as_char_to_uint8(radix, src, dst);
|
||||||
*dst = *src - '0';
|
|
||||||
else if( *src >= 'a' && *src <= 'f')
|
|
||||||
*dst = 0xa + *src - 'a';
|
|
||||||
else if( *src >= 'A' && *src <= 'F')
|
|
||||||
*dst = 0xa + *src - 'A';
|
|
||||||
else
|
|
||||||
return -1;
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int morph_digit_as_uint8_to_char(
|
int morph_digit_as_uint8_to_char(
|
||||||
|
uint64_t const radix,
|
||||||
uint8_t const * restrict src,
|
uint8_t const * restrict src,
|
||||||
char * restrict dst
|
uint8_t * restrict dst
|
||||||
) {
|
) {
|
||||||
if ( *src < 10 )
|
if ( *src < 10 )
|
||||||
*dst = *src + '0';
|
*dst = *src + '0';
|
||||||
|
@ -48,17 +42,11 @@ int morph_digit_as_uint8_to_char(
|
||||||
}
|
}
|
||||||
|
|
||||||
int morph_digit_as_uint64_to_char(
|
int morph_digit_as_uint64_to_char(
|
||||||
|
uint64_t const radix,
|
||||||
uint64_t const * restrict src,
|
uint64_t const * restrict src,
|
||||||
char * restrict dst
|
uint8_t * restrict dst
|
||||||
) {
|
) {
|
||||||
if ( *src < 10 )
|
return morph_digit_as_uint8_to_char(radix, src, dst);
|
||||||
*dst = *src + '0';
|
|
||||||
else if( *dst < 16 )
|
|
||||||
*dst = *src - 0xa + 'a';
|
|
||||||
else
|
|
||||||
return -1;
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* switches endianness by reversing the digit sequence
|
/* switches endianness by reversing the digit sequence
|
||||||
|
|
Loading…
Add table
Reference in a new issue