Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Есть программа написанная на Си. Не пойму как перевести из 16-иричной систему в 10-итичную систему.

Влад Киреев Знаток (378), закрыт 12 лет назад
В этой программе есть двойной массив:
char Font[33][9] = {
{ 0x10, 0x28, 0x44, 0x82, 0xFE, 0x82, 0x82, 0x82, 0x82 },
{ 0x7E, 0x80, 0x80, 0x80, 0xFC, 0x82, 0x82, 0x82, 0x7C },
{ 0xFC, 0x82, 0x82, 0x82, 0xFC, 0x82, 0x82, 0x82, 0xFC },
{ 0x7E, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 },
{ 0x10, 0x28, 0x44, 0x44, 0x44, 0xFE, 0x82, 0x82, 0x82 },
{ 0x7E, 0x80, 0x80, 0x80, 0xFE, 0x80, 0x80, 0x80, 0x7E },
{ 0x92, 0x54, 0x54, 0x38, 0x10, 0x38, 0x54, 0x54, 0x92 },
{ 0xFC, 0x02, 0x02, 0x02, 0xFE, 0x02, 0x02, 0x02, 0xFC },
{ 0x82, 0x86, 0x8A, 0x8A, 0x92, 0xA2, 0xA2, 0xC2, 0x82 },
{ 0x28, 0x92, 0x86, 0x8A, 0x92, 0x92, 0xA2, 0xC2, 0x82 },
{ 0x82, 0x84, 0x88, 0x90, 0xE0, 0x90, 0x88, 0x84, 0x82 },
{ 0x3C, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0xC2 },
{ 0x82, 0xC6, 0xAA, 0x92, 0x82, 0x82, 0x82, 0x82, 0x82 },
{ 0x82, 0x82, 0x82, 0x82, 0xFE, 0x82, 0x82, 0x82, 0x82 },
{ 0x7C, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x7C },
{ 0x7C, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82 },
{ 0x7C, 0x82, 0x82, 0x82, 0xFC, 0x80, 0x80, 0x80, 0x80 },
{ 0x7E, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7E },
{ 0xFE, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10 },
{ 0x82, 0x82, 0x82, 0x44, 0x28, 0x10, 0x20, 0x40, 0x80 },
{ 0x7C, 0x92, 0x92, 0x92, 0x7C, 0x10, 0x10, 0x10, 0x10 },
{ 0x82, 0x82, 0x44, 0x28, 0x10, 0x28, 0x44, 0x82, 0x82 },
{ 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0xFE, 0x02 },
{ 0x82, 0x82, 0x82, 0x82, 0x7E, 0x02, 0x02, 0x02, 0x02 },
{ 0x92, 0x92, 0x92, 0x92, 0x92, 0x92, 0x92, 0x92, 0x7C },
{ 0x92, 0x92, 0x92, 0x92, 0x92, 0x92, 0x92, 0x7E, 0x02 },
{ 0xE0, 0x20, 0x20, 0x20, 0x3C, 0x22, 0x22, 0x22, 0x1C },
{ 0x82, 0x82, 0x82, 0x82, 0xF2, 0x8A, 0x8A, 0x8A, 0x72 },
{ 0x80, 0x80, 0x80, 0x80, 0xFC, 0x82, 0x82, 0x82, 0x7C },
{ 0xFC, 0x02, 0x02, 0x02, 0x3E, 0x02, 0x02, 0x02, 0xFC },
{ 0x9C, 0xA2, 0xA2, 0xA2, 0xE2, 0xA2, 0xA2, 0xA2, 0x9C },
{ 0x7C, 0x82, 0x82, 0x82, 0x7E, 0x42, 0x82, 0x82, 0x82 },
{ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
};

Как мне определить какой из этих чисел что означает (33 это буквы русского алфавита)
Т. е. вопрос заключается в том, как перевести в десятичную систему.
Лучший ответ
Шин Гуру (2873) 12 лет назад
Это графическое отображение алфавита (Фонт) . Символы рисуются в матрице 8х9. Каждое число в строке представляет одну линию в символе. Т. е. берешь девять числел из массива, переводишь их в двоичное представление и смотришь что получилось, например первые восемь символов образуют букву "А"

00010000 (#10)
00101000 (#28)
01000100 (#44)
10000010 (#82)
11111110 (#ФЕ)
10000010 (#82)
10000010 (#82)
10000010 (#82)
10000010 (#82)

а где-то в середине сразу видно "Т"

11111110 (#ФЕ)
00010000 (#10)
00010000 (#10)
00010000 (#10)
00010000 (#10)
00010000 (#10)
00010000 (#10)
00010000 (#10)
00010000 (#10)

Последняя из нулей - естественно пробел. Ну и остальное в том же духе. Скорее всего они по порядку идут
Остальные ответы
Мария Михайлова Мастер (2316) 12 лет назад
Можно просто вывести числа массива на печать как целые или как символы (если есть подозрение, что это ASCII-коды какого-то сообщения) . Шестнадцатеричная система - только для записи, хранятся числа все одинаково.
Похожие вопросы