Converts numbers between binary, decimal, octal, hexadecimal and custom base64. Supports very large numbers.
$ dotnet add package Tree3.ConverterTree3.Converter is a lightweight .NET library for converting between binary, decimal, octal and hexadecimal, supporting arbitrarily large numbers, input validation, and reusable utility methods.
Task<string>, ready for use in async workflows.long limits.BigInteger, external converter service, or distributed engine).using Tree3.Converter;
// All public interfaces and classes are in the Tree3.Converter namespace
ICustomBase64Converter
Task<string> ToDecimalAsync(string number);
IBinaryConverter
Task<string> ToDecimalAsync(string number);
Task<string> ToOctalAsync(string number);
Task<string> ToHexadecimalAsync(string number);
IConverterUtilities
string RemoveLeadingZeros(string number);
(bool, BigInteger) ParseDecimalToBigInteger(string number);
(bool, BigInteger) ParseHexadecimalToBigInteger(string number);
bool IsValidBinary(string number);
bool IsValidDecimal(string number);
bool IsValidOctal(string number);
bool IsValidHexadecimal(string number);
bool IsValidCustomBase64(string number);
IDecimalConverter
Task<string> ToBinaryAsync(string number);
Task<string> ToOctalAsync(string number);
Task<string> ToHexadecimalAsync(string number);
IHexadecimalConverter
Task<string> ToBinaryAsync(string number);
Task<string> ToDecimalAsync(string number);
Task<string> ToOctalAsync(string number);
IOctalConverter
Task<string> ToBinaryAsync(string number);
Task<string> ToDecimalAsync(string number);
Task<string> ToHexadecimalAsync(string number);
// Custom Base64 Mapping Table
// Index: 0-9 => '0'-'9'
// Index: 10-35 => 'A'-'Z'
// Index: 36-61 => 'a'-'z'
// Index: 62 => '-'
// Index: 63 => '_'
NET 10 / Windows 11 / Intel i5 CPU
Converts a binary number with 100,000 digits to decimal in ~0.5 seconds.
Converts a binary number with 100,000 digits to octal in ~0.004 seconds.
Converts a binary number with 100,000 digits to hexadecimal in ~0.6 seconds.
Converts a decimal number with 100,000 digits to binary in ~7 seconds on.
Converts a decimal number with 100,000 digits to octal in ~7 seconds on.
Converts a decimal number with 100,000 digits to hexadecimal in ~0.01 seconds on.
Converts a octal number with 100,000 digits to binary in ~0.01 seconds on.
Converts a octal number with 100,000 digits to decimal in ~5 seconds on.
Converts a octal number with 100,000 digits to hexadecimal in ~4.9 seconds on.
Converts a hexadecimal number with 100,000 digits to binary in ~10 seconds on.
Converts a hexadecimal number with 100,000 digits to decimal in ~1 seconds on.
Converts a hexadecimal number with 100,000 digits to octal in ~10 seconds on.
Converts a decimal number with 100,000 digits to base64 number in ~8 seconds on.
Converts a base64 number with 100,000 digits to decimal in ~4 seconds on.
ICustomBase64Converter, IConverterUtilitiesIDecimalConverter :
Task<string> ToBase64Async(string number);ICustomBase64Converter :
Task<string> ToDecimalAsync(string number);IConverterUtilities :
string RemoveLeadingZeros(string number);(bool, BigInteger) ParseDecimalToBigInteger(string number);(bool, BigInteger) ParseHexadecimalToBigInteger(string number);bool IsValidBinary(string number);bool IsValidDecimal(string number);bool IsValidOctal(string number);bool IsValidHexadecimal(string number);bool IsValidCustomBase64(string number);IBinaryConverter, IDecimalConverter, IOctalConverter, IHexadecimalConverter interfaces for asynchronous non-negative integer conversion.IBinaryConverter :
ToDecimalAsync(string number)ToOctalAsync(string number)ToHexadecimalAsync(string number)IDecimalConverter :
ToBinaryAsync(string number)ToOctalAsync(string number)ToHexadecimalAsync(string number)IOctalConverter :
ToBinaryAsync(string number)ToDecimalAsync(string number)ToHexadecimalAsync(string number)IHexadecimalConverter :
ToBinaryAsync(string number)ToDecimalAsync(string number)ToOctalAsync(string number)string values, allowing support for very large numbers.Utilities classes.