mid$(s$, i, 1) の代わりに s$[i] と書けます。34行はこれでスッキリするでしょう。 もっといい方法は、k = i and (1<<j) です。 1<<j は pow(2, j) と同じです。(ただし j は 0~31 までに限定) and はビットごとの掛け算になります。二進数を表す &b を使って書くと &b0011 and &b0101 = &b0001 になります。行を分けて欠くと &b0011 and &b0101 = &b0001 '共に 1 の桁だけ 1 になる iが &bxxxxxxxxx の時、j が 0,1,.. と変化すると k = i and (1<<0) = i and &b1 = iの一番右の桁(0か1) k = i and (1<<1) = i and &b10 = iの右から2番目の桁 ... となります