Задать вопрос
  • Логика кодирования Base64?

    @Karpion
    Base64 кодирует каждые три байта (24 бита) исходного файла в четыре символа из числа тех, которые проходят текстовую обработку заведомо корректно; количество таких символов, очевидно, равно 64 (шесть бит).

    Автор функции пользуется тем, что некоторые символы идут непрерывно. Если бы интервалов непрерывности было больше, то проще было бы сделать табличное преобразование.
    Ответ написан
    Комментировать
  • Логика кодирования Base64?

    samodum
    @samodum
    Какой вопрос - такой и ответ
    return возвращает число от 0 до 63.
    В зависимости от входного символа идёт его преобразование.
    Если от A до Z, то возвращает 0, если "A", и 90-65=25, если "Z".
    Если от a до z, то возвращает 90-65+1 = 26, если "a" и так далее.
    Дальше всё должно быть понятно по логике выше. Код очень легко читается.
    Основная суть в том, чтобы запихнуть набор символов "A-Za-z0-9+/" в диапазон чисел от 0 до 63.
    Это называется маппингом.
    https://en.wikipedia.org/wiki/Base64
    Ответ написан
    Комментировать