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
<PackageReference Include="SG.Utilities.BaseConverter" Version="1.1.0" />
paket add SG.Utilities.BaseConverter --version 1.1.0
#r "nuget: SG.Utilities.BaseConverter, 1.1.0"
// 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 | Versions 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. |
-
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.