懲りずにVB練習中だが。また行き詰った。勝手が違うな。
 VBって関数の中に関数をネストすることできないのか? ごく初歩的なことだが、ローカル関数は実にスマートなのに。
 あとはユーザー定義型。特にクラス型よりはレコード型。
 Delphiなら可能だった。C#やJavaはどうかな。私もすっかり生きた化石だ。と実につくづく身にしみる。
 
 
 座標計算等の処理速度必要なコードを打ちながら、「ここの概数の処理は100で割るのが正しいんだ、ユーザーに扱いやすいんだ!」と知りつつ。
 つい100ではなく64か128を迷いその片方で割ってしまうのが悲しい80年代の8ビット機を知るプログラマの性である。
 若者は知らないかもしれないが、2の乗数だと乗除算の計算速いからだ。(機械語レベルで、2の乗数はシフト演算一回で済むため)
 1バイトでもメモリを小さく、少しでも処理速度を高く。
 
 パソコンのメモリ容量はなぜ四倍毎に増えていたか?
 これはアドレスのケタが偶数となると機械語レベルで処理しやすいから。もっとも実際にはメモリは二倍毎+αに増え、アドレスのケタ数も端数が生じているが。
 
 過去のBASICの論理演算で。結果をPrintするとtrueになぜ(+1ではなく)-1と出たか?
 これも若者は知らないかな。一言でいえばフラグが立つからだ。
 詳しく言うと、論理学では真・trueは1、偽・falseは0だ。機械語レベルでは論理演算をしたレジスタのすべてのビットが1となり、2の補数表記でBASICはそれを-1と表示する。
 現代のVBその他では、論理演算結果にtrueかfalseとだけ返るから、これを知らない人いるかもな。
 
 最後に文系トリビア。『偽』……人の「為(ため)」と書いて偽り。