1. C# / Говнокод #12962

    +135

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    string t = label1.Text;
    char[] bits = t.ToCharArray();
    int a1 = (Convert.ToInt16(bits[0]) - 48) + (Convert.ToInt16(bits[1]) - 48) + (Convert.ToInt16(bits[2]) - 48) + (Convert.ToInt16(bits[3]) - 48) + (Convert.ToInt16(bits[4] - 48));
                    char[] hemming = { '0', '0', bits[0], '0', bits[1], bits[2], bits[3], '0', bits[4] };
                    if (a1 == 1 || a1 == 2 || a1 == 4)
                    {
                        hemming[0] = '0';
                    }
                    else
                    { hemming[0] = '1'; }
                    int a2 = (Convert.ToInt16(hemming[2] - 48) + Convert.ToInt16(hemming[5] - 48) + Convert.ToInt16(hemming[6] - 48));
                    if (a2 == 1 || a2 == 2 || a2 == 4)
                    {
                        hemming[1] = '0';
                    }
                    else
                    { hemming[1] = '1'; }
                    int a3 = (Convert.ToInt16(hemming[4] - 48) + Convert.ToInt16(hemming[5] - 48) + Convert.ToInt16(hemming[6] - 48));
                    if (a3 == 1 || a3 == 2 || a3 == 4)
                    {
                        hemming[3] = '0';
                    }
                    else
                    { hemming[3] = '1'; }
                    if (hemming[7] == '1')
                    {
                        hemming[8] = '1';
                    }
                    else
                    { hemming[8] = '0'; }

    Реализация кода Хемминга (орфография и пунктуация сохранены)

    Запостил: Psilon, 03 Мая 2013

    Комментарии (14) RSS

    • В универе я делал курсовой. Надо было составить схемы приемника и передатчика для двенадцати информационных разрядов, если мне не изменяет память. Блоки, отвечающие за кодирование и декодирование по Хеммингу и выполненные на элементной базе И, ИЛИ, НЕ, получились компактными и наглядно показали мне "математическую красоту" этого алгоритма.
      Поэтому я не могу без слез смотреть на это битоебство на не предназначенном для битоебства языке.
      Ответить
    • автор решил облегчить себе задачу по битоебству. а зря
      Ответить
      • if (a1 == 1 || a1 == 2 || a1 == 4)
                        {
                            hemming[0] = '0';
                        }
                        else
                        { hemming[0] = '1'; }
                        int a2 = (Convert.ToInt16(hemming[2] - 48)

        Так вот ты какое, шарперское байтоебство!
        http://rghost.ru/45826640
        Ответить
    • ИМХО, Convert.ToInt16 работает медленнее, чем Convert.ToInt32.
      Ответить

    Добавить комментарий