From 27b57768e4b60eca769a499c577b9ff512d7341b Mon Sep 17 00:00:00 2001 From: Natalia Portillo Date: Mon, 10 Jul 2017 21:37:19 +0100 Subject: [PATCH] Added helper to count bits from uint. --- DiscImageChef.Helpers/CountBits.cs | 7 +++++-- DiscImageChef.Helpers/DiscImageChef.Helpers.csproj | 1 + 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/DiscImageChef.Helpers/CountBits.cs b/DiscImageChef.Helpers/CountBits.cs index cf228966b..d8313ff19 100644 --- a/DiscImageChef.Helpers/CountBits.cs +++ b/DiscImageChef.Helpers/CountBits.cs @@ -32,10 +32,13 @@ using System; namespace DiscImageChef.Helpers { - public class CountBits + public static class CountBits { - public CountBits() + public static int Count(uint number) { + number = number - ((number >> 1) & 0x55555555); + number = (number & 0x33333333) + ((number >> 2) & 0x33333333); + return (int)((((number + (number >> 4)) & 0x0F0F0F0F) * 0x01010101) >> 24); } } } diff --git a/DiscImageChef.Helpers/DiscImageChef.Helpers.csproj b/DiscImageChef.Helpers/DiscImageChef.Helpers.csproj index e62b1117e..78c4a7bb4 100644 --- a/DiscImageChef.Helpers/DiscImageChef.Helpers.csproj +++ b/DiscImageChef.Helpers/DiscImageChef.Helpers.csproj @@ -53,6 +53,7 @@ +