SG.Utilities.BaseConverter 1.1.0

dotnet add package SG.Utilities.BaseConverter --version 1.1.0                
NuGet\Install-Package SG.Utilities.BaseConverter -Version 1.1.0                
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="SG.Utilities.BaseConverter" Version="1.1.0" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add SG.Utilities.BaseConverter --version 1.1.0                
#r "nuget: SG.Utilities.BaseConverter, 1.1.0"                
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install SG.Utilities.BaseConverter as a Cake Addin
#addin nuget:?package=SG.Utilities.BaseConverter&version=1.1.0

// Install SG.Utilities.BaseConverter as a Cake Tool
#tool nuget:?package=SG.Utilities.BaseConverter&version=1.1.0                

SG.Utilities.BaseConverter

This library promotes BaseConverter class that allows you to convert Int64 values into desired base(radix) using some universal or your own alphabet.

Common usage

Pass desired alphabet as a string with unique characters or use BaseAlphabet class constants

using SG.Utilities;

IBaseConverter customBase12Converter = new BaseConverter("Unique_chars");
var inBase12 = customBase12Converter.ConvertFromDec(12345);                 // "cnha"
var fromBase12 = customBase12Converter.ConvertToDec(inBase12);              // 12345

IBaseConverter readableUrlConverter = new BaseConverter(BaseAlphabet.Base58);
// IBaseConverter readableUrlConverter = new Base58Converter();
var inBase58 = readableUrlConverter.ConvertFromDec(12345);                  // "4fr"
var fromBase58 = readableUrlConverter.ConvertToDec(inBase58);               // 12345

Base2, Base8 and Base16

For this cases you don't need this library as System.Convert class do it's job perfectly. Nevertheless, there is wrapper classes Base2Converter, Base8Converter, Base16Converter that implements IBaseConverter and pass execution to System.Convert

using SG.Utilities;

IBaseConverter converter = new Base2Converter();            // System.Convert will be used
var inBase2 = converter.ConvertFromDec(12345);              // "11000000111001"
var fromBase2 = converter.ConvertToDec(inBase2);            // 12345

Changelog

v1.1
  • ConvertToDec(string value) may trigger an OverflowException from now
  • ConvertToDec(string value) trims leading zeros before conversion
  • Code covered with tests

License

MIT

Product Compatible and additional computed target framework versions.
.NET net6.0 is compatible.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • net6.0

    • No dependencies.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
1.1.0 435 10/10/2022
1.0.0 396 9/9/2022