'0'=0x30=00110000b
という事で、文字コードの5ビット目6ビット目を0にしています
 ここに来るのは 0〜9の文字コードだけなので それは結局 文字コードを数字にしているという意味になります

pascalなら work := str[i] -ord( '0') ; と書くような場面でしょう