多分、作者が欧米の人で、マルチバイト文字の扱いなんて考えてなく、
直接表示できないバイトは値を表示しとけばいいやと思ったからでしょう。

8進数でやったり16進数でやったりするのはコンピュータの基礎が
0と1の2進数で成り立っているから。
2進数3ケタで8進数1ケタ、2進数4ケタで16進数1ケタになります
(2の3乗が8、2の4乗が16だから)。