Imports System
Imports System.Linq
Module BitReverse
' Reverse bits using string operations (clear and idiomatic in VB.NET)
Function ReverseBits(n As Integer, Optional width As Integer = 32) As Integer
Dim bin = Convert.ToString(n, 2).PadLeft(width, "0"c)
Dim reversed = New String(bin.Reverse().ToArray())
Return Convert.ToInt32(reversed, 2)
End Function
' Format bits into 8‑bit groups
Function Bits(n As Integer, Optional width As Integer = 32) As String
Dim bin = Convert.ToString(n, 2).PadLeft(width, "0"c)
Return String.Join(" ", Enumerable.Range(0, width \ 8).
Select(Function(i) bin.Substring(i * 8, 8)))
End Function
Sub Main()
Dim a As Integer = 19
Dim b As Integer = 3
Dim ra As Integer = ReverseBits(a)
Dim rb As Integer = ReverseBits(b)
Console.WriteLine("Original 19: " & Bits(a))
Console.WriteLine("Reversed 19: " & Bits(ra))
Console.WriteLine()
Console.WriteLine("Original 3: " & Bits(b))
Console.WriteLine("Reversed 3: " & Bits(rb))
End Sub
End Module
' run:
'
' Original 19: 00000000 00000000 00000000 00010011
' Reversed 19: 11001000 00000000 00000000 00000000
'
' Original 3: 00000000 00000000 00000000 00000011
' Reversed 3: 11000000 00000000 00000000 00000000
'