How to check if an integer contains an even or odd number of bits set in VB.NET

2 Answers

0 votes
Imports System

Class Program
    Public Shared Sub Main(ByVal args As String())
        Dim num As Integer = 42 ' 00101010
        Dim result As Integer = CountBits(num) Mod 2
		
        Console.WriteLine("0 = even number of bits set")
        Console.WriteLine("1 = odd number of bits set")
        Console.WriteLine("result: " & result)
    End Sub

    Private Shared Function CountBits(ByVal n As Integer) As Integer
        Dim count As Integer = 0

        While n <> 0
			count = count + n And 1
            n = n >> 1

        End While

        Return count
    End Function
End Class



' run:
' 
' 0 = even number of bits set
' 1 = odd number of bits set
' result: 1
'

 



answered Jul 27, 2025 by avibootz
edited Jul 27, 2025 by avibootz
0 votes
Imports System
Imports System.Linq

Class Program
    Public Shared Sub Main(ByVal args As String())
        Dim num As Integer = 42 ' 00101010
        
		Dim result As Integer = Convert.ToString(num, 2).Count(Function(c) c = "1"c) Mod 2
        
		Console.WriteLine("0 = even number of bits set")
        Console.WriteLine("1 = odd number of bits set")
        Console.WriteLine("result: " & result)
    End Sub
End Class



' run:
' 
' 0 = even number of bits set
' 1 = odd number of bits set
' result: 1
'

 



answered Jul 27, 2025 by avibootz
...