How to check if all bits of a number are set in VB.NET

2 Answers

0 votes
Imports System

Public Class Test
    Public Shared Function is_all_bits_set(n as Integer)
        return (n + 1) And n
    End Function 
    
    Public Shared Sub Main()
        Dim n as Integer = 15
        
        Console.WriteLine(Convert.ToString(n, 2).PadLeft(4, "0"C))
        Console.WriteLine(Convert.ToString(n + 1, 2).PadLeft(4, "0"C))
        Console.WriteLine(Convert.ToString((n + 1) And n, 2).PadLeft(4, "0"C))
        
        if is_all_bits_set(n) = 0 Then
            Console.WriteLine("Yes")
        else 
            Console.WriteLine("No")
        End If
        
        n = 13

        Console.WriteLine(Convert.ToString(n, 2).PadLeft(4, "0"C))
        Console.WriteLine(Convert.ToString(n + 1, 2).PadLeft(4, "0"C))
        Console.WriteLine(Convert.ToString((n + 1) And n, 2).PadLeft(4, "0"C))
        
        if is_all_bits_set(n) = 0 Then
            Console.WriteLine("Yes")
        else 
            Console.WriteLine("No")
        End If

    End Sub
End Class


' Run:

' 1111
' 10000
' 0000
' Yes
' 1101
' 1110
' 1100
' No

 



answered Mar 7, 2019 by avibootz
0 votes
Imports System

Public Class Test
    Public Shared Function is_all_bits_set(n as Integer)
         Do while n > 0
            if (n And 1) = 0 Then 
                return 0 
            End If
            n = n >> 1
         Loop
        return 1
    End Function 
    
    Public Shared Sub Main()
        Dim n as Integer = 15
        
        Console.WriteLine(Convert.ToString(n, 2).PadLeft(4, "0"C))

        if is_all_bits_set(n) = 1 Then
            Console.WriteLine("Yes")
        else 
            Console.WriteLine("No")
        End If
        
        n = 13

        Console.WriteLine(Convert.ToString(n, 2).PadLeft(4, "0"C))

        if is_all_bits_set(n) = 1 Then
            Console.WriteLine("Yes")
        else 
            Console.WriteLine("No")
        End If

    End Sub
End Class


' Run:

' 1111
' Yes
' 1101
' No

 



answered Mar 7, 2019 by avibootz
...