| 数式ってのはこういうものなのだ | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
今回・次回の解説には、OXさん・ToYさん・MIAさん・Ma_Tsさんなどの多大なご協力を頂きました。この場を借りて御礼申し上げます。深謝。 じゃぁ、マニュアルの「数式」のとこに書いてある順番に見てきましょう。なんかそのうち中学・高校で使ってた数学の教科書引っ張り出さなきゃいけなくなりそうだな^^;
10進数字→2進数字とか、16進数字→10進数字を暗算でやれって言われると「ごめんなさい」なんだけど、まぁ意味はわかる。要はこういうことでしょ?
Windowsに標準で入ってる「電卓」を使いました。プログラマに関数電卓が必須だっての、よくわかるね・・・こんなの手計算じゃやっとれん^^;
最初意味がよくわからんかったのだけど、やってみて納得。それぞれの文字が持ってるコード番号ってのがあって、それがそのまま入るらしい。例えば 'a'=97 、 'A'=65 っていう感じ。全角文字は調べられないのかな〜と思ったら、できちゃった。 'あ'=-126 だった。入力した文字を調べて何か計算する(占いとか暗号とかに使えるかな?)ような使い方ができるのかな?
これは特に問題なし。ところでこれはHSPの特殊な仕様らしいんだけど、計算式は常に左から順番に処理されるんだって。乗除算の優先は無いそうな。優先させたかったら()をつけるってのは同じらしいんだけど。例えば「A=1+5*2」は「A=12」と同じ。数学的に正しく計算すれば「A=11」だもんね。そういうふうにしたかったら「A=1+(5*2)」というような感じで記述しなきゃいけないそうだ。
今まで一番わからなかった部分。要は2進法で考えなきゃいけないそうだ。 例1: 12&20
ってことで、結果は「4」になる。これが信じられない人は、スクリプトエディタで下のように書いてみてくだされ。F5を押すと「4」と表示されるはずだぁ。
つまり、「and」の計算は、2進法に直して、同じ位置のどちらにも「1」があれば、「1」になるということ。「論理積」と言うそうな。縦に見るとわかりやすいね。 例2: 12|20
今度の結果は「28」。信じられない人は、上のプログラムの「&」を「|」に書き換えてF5を押してみなはれ。「or」の計算は、2進法に直して、同じ位置のどちらかに「1」があれば「1」になると。「論理和」と言うそうな。 例3: 12^20
今度の結果は「24」。同じ位置の数字が違ったら結果は「1」になるそうな。「排他的論理和(xor)」と言って、あまり見かけないけど暗号化なんかに使えるらしい。 彼ら(笑)の使い道ってすぐには思いつかないんだけど、元々CPUの根っこでは2進法で計算してるんだから、人間様は苦労するけどコンピュータだと処理が速くなるそうな。得意な方法でやらせてあげましょうってことだね・・・。
こいつは簡単。例えば 4\3=1って感じだね。ただし、何に使うのかは見当がつかん^^;
これらはほとんどIF文で使うやつだね。「IF x>600 : x=600」っていう感じだな。
これはマジで、きちんと勉強した人じゃなきゃわかんないよぉ。要は、「2のn乗を掛ける」ということらしい。左とか右ってなんのこっちゃ?って思ってたんだけど、要は2進法で考えるらしい。 例1: 50>>1
これは「 50×2-1 」ということになるから、「 50/2 」と結果は同じ。2進法に直すと、見事に右側にずれてる。これも論理演算と同様、2進法で人間様は苦労するけどコンピュータは楽チンになるそうな。 例2: 50<<2
これは「 50×22 」だから、「 50*4 」と結果は同じ。2進法で考えると、今度は左に2つずれてるのがわかるでしょ? さぁここまで来れば、あの謎の2行の意味がわかってくるぞぉ。解析は次回。
|