Sub setRightBits(bits() As Integer, e As Integer, n As Integer) Dim As Integer i, j If e = 0 Or n <= 0 Then Exit Sub Dim bits2(1 To e) As Integer For i = 1 To e : bits2(i) = bits(i) : Next For i = 1 To e - 1 If bits(i) = 1 Then j = i + 1 While j <= i + n And j <= e bits2(j) = 1 j += 1 Wend End If Next i For i = 1 To e : bits(i) = bits2(i) : Next End Sub Dim As Integer i, k, ub, n Dim As String b = "010000000000100000000010000000010000000100000010000010000100010010" Dim tests(8, 2) As String tests(1, 1) = "1000": tests(1, 2) = "2" tests(2, 1) = "0100": tests(2, 2) = "2" tests(3, 1) = "0010": tests(3, 2) = "2" tests(4, 1) = "0000": tests(4, 2) = "2" tests(5, 1) = b: tests(5, 2) = "0" tests(6, 1) = b: tests(6, 2) = "1" tests(7, 1) = b: tests(7, 2) = "2" tests(8, 1) = b: tests(8, 2) = "3" For k = 1 To 8 Dim bits(1 To Len(tests(k, 1))) As Integer For i = 1 To Len(tests(k, 1)) bits(i) = Val(Mid(tests(k, 1), i, 1)) Next i ub = Ubound(bits) n = Val(tests(k, 2)) Print Using "n = #; Width e = ##:"; n; ub Print " Input b: "; tests(k, 1) setRightBits(bits(), ub, n) Print " Result: "; For i = 1 To ub Print Str(bits(i)); Next i Print Chr(10) Next k Sleep