Почти для любого преобразования одного семибитного кода в другой,
самое простое решение - это просто таблица, например:
статический символ без знака fromGray [] =
{
0x00, 0x01, 0x03, 0x02, 0x06, 0x07, 0x05, 0x04,
0x0C, 0x0D, 0x0F, 0x0E, 0x0A, 0x0B, 0x09, 0x08,
0x18, 0x18, 0x1B, 0x1A, 0x1E, 0x1F, 0x1D, 0x1C,
0x14, 0x15, 0x17, 0x16, 0x12, 0x13, 0x11, 0x10,
// ....
}; * * Тысяча одна
В какой-то момент между 8 и 16 битами вы, вероятно, захотите
перейти на алгоритмический подход (хотя с учетом памяти
доступный на современных процессорах, настольный подход действителен для
довольно большие столы). Даже тогда, я бы, вероятно, использовал таблицу для
младшие биты.