General purpose hash functions:
- adler32
- CRC-32 (fast, table implementation)
- MaHash8v64 (fast, table implementation)
All three functions are adapted for MQL5 Unicode strings. The results has been verified with Fsum Frontend 1.5.5.1.
Radix Conversion:
- from decimal (ulong) to Base radix
- inverse transformation
The radix conversion is based on the following sequence of chars: 10 [0..9] + 26 [A..Z] + 26 [a..z] + 33 [А..Я] + 33 [а..я]. The “0-9” digits and “A-Z” english letters are used up to base 36.
The possible practical use of the other radix may be the compact form of string representation of a number in names of graphic objects. For example, 64-bit number generally has the following number of chars:
- decimal: 20 chars (ULONG_MAX)
- hexadecimal: 16 chars
- base 36: 11 chars
- base 128: 10 chars
the optimal is the base 36 radix.