# Pastebin CSMFOG7Q 16:45 manveru: yup, len is length in base-32 digits, then it iterates from the most significant digit, calculates which bits to extract and maps 5 bits at a time to a character 16:45 i,j are byte and bit positions which to extract 16:46 ah, i forgot that you can go across array values in C... 16:46 & 0x1f is necessary to mask out the high-order bits 16:46 manveru: thats a std::string, so it wont segfault, it will instead throw an exception 16:47 clever: operator[] doesn't throw an exception; .at() does. 16:48 manveru: hash is a bitstring stored as contiguous array of 8-bit chars in memory. extract 5 bits at a time starting from the end, convert each 5 bits to a char, append them to a string.