1. Список говнокодов пользователя Juksare

    Всего: 1

  2. C++ / Говнокод #16239

    +10

    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
    int getNextCode(int &currentByte, int codeLen)
    {
        int nextCode = 0, mask;
        mask = (int)pow(2, codeLen) - 1;
        if (rest >= codeLen) {
            nextCode = currentByte & mask;
            currentByte >>= codeLen;
            rest -= codeLen;
        } else {
            int nextByte, temp;
            encoded >> std::hex >> nextByte;
            if (codeLen <= rest + 8) {
                temp = nextByte;
                temp <<= rest;
                temp += currentByte;
                rest = 8 + rest - codeLen;
                currentByte = nextByte >> (8 - rest);
            } else {
                int secondByte;
                encoded >> std::hex >> secondByte;
                temp = secondByte << (rest + 8);
                temp += nextByte + currentByte;
                rest = 16 + rest - codeLen;
                currentByte = secondByte >> (8 - rest);
            }
            nextCode = temp & mask;
        }
        return nextCode;
    }

    Функция, для декодера *gif . Считывает несколько бит из файла.

    Juksare, 26 Июня 2014

    Комментарии (2)