Как я понимаю в спецификации, кодировщик Base64
a) берет исходный двоичный файл и дополняет его нулями, кратными 24 байтам.
b) затем он перекодирует его по шесть битов за раз в целевой набор из 64 символов (A..Z, a..z, 0..9, +, -). Если он обнаружит, что последние два байта (16 бит) заполнены нулями, последние два символа транскодируются как '=='. Если он обнаруживает, что последний байт (8 бит) был дополнен нулями, последний символ транскодируется как '='.
Мой вопрос, на этапе (b), как он узнает, что последние байты являются нулями, потому что они заполнены, а не нулями, потому что они являются частью действительных двоичных данных источника?
Является ли подсистема, отвечающая за часть (b), должна знать, что произошло во время части (а)