Size: a a a

Анархическая электроника

2021 April 28

SB

Stanislav Bobokalo in Анархическая электроника
И вообще строки и символы понятие очень абстрактное, я например очень сильно удивился когда понял что в языке Dart строки UTF-16 и что там есть полтора кодировки и страшно неудобно работать со строками как например в сишке
источник

SB

Stanislav Bobokalo in Анархическая электроника
Начинаются дикие костыли в виде создания векторов из чисел и собственных энкодеров
источник

SB

Stanislav Bobokalo in Анархическая электроника
Хуже наверно только в js со строками
источник

W

Wado in Анархическая электроника
Да нормально все в js со стрингами
источник

SB

Stanislav Bobokalo in Анархическая электроника
Да, со всеми типами в этом языке всё хорошо, ок.
источник

R

Roman in Анархическая электроника
Так так, ну так все же как кодируется в бэйс64?
источник

W

Wado in Анархическая электроника
Ты просто не умеешь их готовить
источник

W

Wado in Анархическая электроника
Brainfuck. Вот там действительно всё плохо)))
источник

AK

Andrey Khristov in Анархическая электроника
стоит ли при испытаниях 10-ваттного флайбека использовать лампочку??
источник

SB

Stanislav Bobokalo in Анархическая электроника
Ты наверное замечал в конце каждого закодированного знаки уравнения? Их там может быть 1, 2 или 0, это паддинг добавляемый в конце если изначальное количество байт не поделилось поравну. А делится изначальный бинарный поток на кусочки по 3 байта (задача кодировки передавать любые данные в аски, чтобы можно через текстовые интерфейсы типа строки браузера, формы, файла текстового письма их отправлять).

Так вот, у нас есть выходной алфавит из 64 возможных символов, это 2^6 состояний на один символ, мы кодируем 3 байта (2^8)^3, это 24 бита, 2^24. Сколько нужно символов из алфавита в 2^6 символов? Очевидно что (2^8)^3 = 2^24 = (2^6)^4 -> из 3 байт входных данных получится 4 символа из алфавита кодирования. Если нужно ручками кодировать b64 возьми входные данные, подели по 3 байта, переведи в бинарный вид, в бинарном виде 24 бита раздели на четыре шестибитных числа, переведи их по Base64 табличке в аски текст и заполни в конце знаками "=" пока длинна выходного текста не будет кратна трём
источник

T

Th0r in Анархическая электроника
он же простой, это не malbolge
источник

R

Roman in Анархическая электроника
🤔
источник

R

Roman in Анархическая электроника
То есть байт кодируется тремя символами, которые вместе содержат тот же набор бит, но в другой системе счисления?
источник

SB

Stanislav Bobokalo in Анархическая электроника
3 байта кодируются 4 аскии символами (4 байтами)
источник

SB

Stanislav Bobokalo in Анархическая электроника
Набор бит после кодирования меняется в алфавитный, но благодаря тому что это прямой перевод потом ты тупо читаешь 4 аскии символа и переводишь их по таблице в бинарный вид
источник

R

Roman in Анархическая электроника
Таблица соответствия есть?
источник

SB

Stanislav Bobokalo in Анархическая электроника
В гугле наверняка
источник

SB

Stanislav Bobokalo in Анархическая электроника
Скорее всего сместили аскии начиная с 0x20h в 0x0
источник

SB

Stanislav Bobokalo in Анархическая электроника
И плохие символы выпилили
источник

R

Roman in Анархическая электроника
Просто в алгоритме декодирования я не помню, чтоб там были какие-то таблицы
источник