Help needed on generating sequences

T

Totti

Hi all,
in a excel sheet i want to generate the following sequences for some
array of numbers let us say starting from 0 and going to N-1 bits, the
sequence is from the Hamming Code. For clarity reasons i want to put a
formula in excel that can show me which bit is to be checked as
follows:

Position 1: check 1 bit, skip 1 bit, check 1 bit, skip 1 bit, etc.
(1,3,5,7,9,11,13,15,...)
Position 2: check 2 bits, skip 2 bits, check 2 bits, skip 2 bits, etc.
(2,3,6,7,10,11,14,15,...)
Position 4: check 4 bits, skip 4 bits, etc.
(4,5,6,7,12,13,14,15,20,21,22,23,...)
Position 8: check 8 bits, skip 8 bits, check 8 bits, skip 8 bits, etc.
(8-15,24-31,40-47,...)
Position 16: check 16 bits, skip 16 bits, check 16 bits, skip 16 bits,
etc. (16-31,48-63,80-95,...)
Position 32: check 32 bits, skip 32 bits, etc.
(32-63,96-127,160-191,...)etc.

how can i generate these sequences? using the position
(1,2,4,8,16....) and an array from 0 - N-1, I tried with MOD but i
think i messed it up.
Any help would be appreciated and thanks in advance
 
B

Bernie Deitrick

Totti,

I'm not sure how you want your information, or how you plan to use it, but, for example, put 1 2 3 4
..... N (bit numbers) down column A, starting in A2.
Then in row 1, starting in B, put 1, 2, 4, 8, 16, 32, etc.

In cell B2, use the formula

=MOD(INT($A2/B$1),2)

and copy to match your column headers in row 1, and row labels in column A.

Then the resulting table, 1s mean check, 0 means skip...

HTH,
Bernie
MS Excel MVP
 
B

Bernie Deitrick

And if you want it in VBA, then the logic would be

Sub test()
Dim Position As Variant
Dim iBit As Integer
Dim i As Integer
Dim Check As String

Position = Array(1, 2, 4, 8, 16, 32)
Check = ""

For i = LBound(Position) To UBound(Position)
For iBit = 1 To 63
If iBit \ Position(i) Mod 2 = 1 Then
Check = Check & "1"
Else
Check = Check & "0"
End If
Next iBit
Check = Check & vbCrLf
Next i

MsgBox Check

End Sub
 
T

Totti

Thank you both, i tried excel formulas it works terrific, then the VBA
as well for more practice and its just fine, Thanks again.
Sincerely, Totti
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top