A set of extension methods for doing bitwise manipulation such as endianness (bytes<-->integral types) and rotation.
Endianness-related functionality: short, ushort, int, uint, long, ulong : conversion between (to and from) individual items of these and byte arrays, and between arrays of any of these (UInt32, for example) and byte arrays.
Little and big-endian methods exist at feature and/or type parity.
Rotation-related functionality: byte, short, ushort, int, uint, long, ulong : left and right bitwise circular rotation ("rotate no carry").
Please note: the rotation implemented here is NOT "rotate through carry"! As such, sign is NOT handled specially for signed types.
Endianness conversions operating on multiple values (bulk operations) are performance-enhanced with optimised 'unsafe' implementations. They are considerably faster than comparable operations provided by the BCL.
Install-Package BitManipulator -Version 1.0.5
dotnet add package BitManipulator --version 1.0.5
<PackageReference Include="BitManipulator" Version="1.0.5" />
paket add BitManipulator --version 1.0.5
Swapped out internal copy methods for ones implemented in by another NuGet package of mine, PerfCopy.
- PerfCopy (>= 1.2.0)