35 #ifndef _Wolframe_TYPES_NUMBER_BASE_CONVERSION_HPP_INCLUDED
36 #define _Wolframe_TYPES_NUMBER_BASE_CONVERSION_HPP_INCLUDED
49 unsigned int convertBinaryToBCD(
const unsigned char* uintptr,
unsigned int uintsize,
unsigned char* digitsbuf,
unsigned int digitsbufsize);
57 void convertBCDtoBinary(
const unsigned char* digits,
unsigned int nofdigits,
unsigned char* buf,
unsigned int bufsize);
65 template <
typename UINTTYPE>
68 return convertBinaryToBCD( (
const unsigned char*)&val,
sizeof(val), digitsbuf, digitsbufsize);
77 template <
typename UINTTYPE>
86 template <
typename UINTTYPE>
89 unsigned char* ref = (
unsigned char*)#
90 unsigned int ii=0, nn=
sizeof(UINTTYPE)/2;
93 unsigned char tmp = ref[ii];
94 ref[ii] = ref[
sizeof(UINTTYPE)-ii-1];
95 ref[
sizeof(UINTTYPE)-ii-1] = tmp;
Application wide definitions of integer number value types.
static void reorder(UINTTYPE &num)
Definition: numberBaseConversion.hpp:87
unsigned int convertBinaryToBCD(const unsigned char *uintptr, unsigned int uintsize, unsigned char *digitsbuf, unsigned int digitsbufsize)
Convert a large but limited size big endian integer value to a BCD number.
Class for little/big endian operations.
Definition: numberBaseConversion.hpp:84
void convertBCDtoBinary(const unsigned char *digits, unsigned int nofdigits, unsigned char *buf, unsigned int bufsize)
Convert a large but limited size BCD number to a big endian integer value.
unsigned int convertBigEndianUintToBCD(const UINTTYPE &val, unsigned char *digitsbuf, unsigned int digitsbufsize)
Convert a large but limited size big endian integer value to a BCD number.
Definition: numberBaseConversion.hpp:66
void convertBCDtoBigEndianUint(const unsigned char *digits, unsigned int nofdigits, UINTTYPE &val)
Convert a large but limited size BCD number to a big endian integer value.
Definition: numberBaseConversion.hpp:78