Такие конструкции if надо заменять на словарь.
Если у вас индексы последовательные и начинаются с нуля, то роль словаря может сыграть список или массив.
В любом случае, вам нужно сделать отображение "номер бита" => "сообщение".
Номер бита предлагаю сохранять, чтобы было удобнее записывать таблицу и идти по ней циклом. Оператор сдвига даст вам нужную константу для операции "И".
Итого:
using System;
using System.Collections.Generic;
public class Test
{
private static void AddMessage(Tuple<string, string> message)
{
Console.WriteLine("{0}, {1}", message.Item1, message.Item2);
}
public static void Main()
{
byte val = 176;
for (int i = 0; i <= 7; i++)
{
if ((val & (1 << i)) != 0)
AddMessage(messageByBitIndex[i]);
}
}
private static Tuple<string, string>[] messageByBitIndex =
{
Tuple.Create("1", "А1"), // 0
Tuple.Create("1", "А2"), // 1
Tuple.Create("2", "Б1"), // 2
Tuple.Create("2", "Б2"), // 3
Tuple.Create("1", "АА1"), // 4
Tuple.Create("1", "АА2"), // 5
Tuple.Create("2", "ББ1"), // 6
Tuple.Create("2", "ББ2"), // 7
};
}
ideone.com/vbLapl