続き
>システム上16進で比較したほうが圧倒的に速い
わざわざ文字比較などせん

未だにユーザーインターフェースと内部処理の違いを理解していないのな。
1バイトは8ビット。256進数なの。それを2文字に別けて4ビットの16進ダンプ入力とかしてるだけ。キリ番だからな。
BASE64は6ビットで、3バイト24ビットを4文字で表す。これも良く使う。アスキーコードの英数大文字小文字に記号を入れてな。メールでは超古い実装は7ビットしか通らんから。
ビットコインのアドレスにはBASE58を使ってる。手書きやプリンターでの印字を想定して似た文字を1つに絞ってる。これらはユーザーインターフェース。
倍精度浮動小数点数演算なら64ビットでデータは8バイトなの。それを人に見せる時に0.1254みたいな数字にしてるだけ。2進数や16進数で見たけりゃ見れるよ。
hex(16進数)は同じか比較する時に見やすいの。32バイトのハッシュ値が倍のサイズになるけどな。
アスキーコードは7ビットしか無いし、改行、タブ、ベル、改ページなどの制御コードが入ってだし。国によって\(バックスラッシュ)に¥(Yに=を重ねたエン)を割り当てたりしてる。
だから1バイトをそのまま表示する事が出来ないからね。