How to represent the ABCs as a 5-letter binary code using A for 0 and B for 1 in VB.NET

1 Answer

0 votes
Imports System
Imports System.Text

Module ABCode

    ' a = AAAAA -> 00000 -> 0
    ' b = AAAAB -> 00001 -> 1
    ' c = AAABA -> 00010 -> 2
    ' d = AAABB -> 00011 -> 3
    ' e = AABAA -> 00100 -> 4
    ' f = AABAB -> 00101 -> 5
    ' g = AABBA -> 00110 -> 6

    ' Convert integer n (0–31) into 5-letter A/B code
    Function toAB(n As Integer) As String
        Dim outStr As New StringBuilder()

        For i As Integer = 4 To 0 Step -1
            Dim bit As Integer = (n >> i) And 1   ' extract bit
            outStr.Append(If(bit = 1, "B", "A"))
        Next

        Return outStr.ToString()
    End Function

    Sub Main()
        For ch As Integer = Convert.ToInt32("a"c) To Convert.ToInt32("z"c)
            Dim letter As Char = Convert.ToChar(ch)
            Dim value As Integer = ch - Convert.ToInt32("a"c)   ' a=0, b=1, c=2...
            Dim code As String = toAB(value)

            Console.WriteLine(letter & " -> " & value & " -> " & code)
        Next
    End Sub

End Module


'
' run:
'
' a -> 0 -> AAAAA
' b -> 1 -> AAAAB
' c -> 2 -> AAABA
' d -> 3 -> AAABB
' e -> 4 -> AABAA
' f -> 5 -> AABAB
' g -> 6 -> AABBA
' h -> 7 -> AABBB
' i -> 8 -> ABAAA
' j -> 9 -> ABAAB
' k -> 10 -> ABABA
' l -> 11 -> ABABB
' m -> 12 -> ABBAA
' n -> 13 -> ABBAB
' o -> 14 -> ABBBA
' p -> 15 -> ABBBB
' q -> 16 -> BAAAA
' r -> 17 -> BAAAB
' s -> 18 -> BAABA
' t -> 19 -> BAABB
' u -> 20 -> BABAA
' v -> 21 -> BABAB
' w -> 22 -> BABBA
' x -> 23 -> BABBB
' y -> 24 -> BBAAA
' z -> 25 -> BBAAB
'

 



answered 1 hour ago by avibootz

Related questions

...