ビジネス、音楽、映画、ニュース、自己啓発などを語ります。加算していくと0に戻る論理演算2019-09-16加算していくと0に戻る論理演算プログラム加算すると増えていくプログラムを書けるようになると言うのは、そのプログラミング言語の文法を知っていると言うコトはもちろん、アルゴリズムを生み出せるコトも非常に重要です。アルゴリズムはプログラミングの知識よりも思考力の問題です。ボクはプログラミングの初心者であり、ダラダラと、主に、JavaScriptの学習をしています。最近知った、ちょっと面白いアルゴリズムを書いてみます。アルゴリズムと言っても、非常にカンタンな論理演算の話です。別にJavaScriptじゃなくても、どんなプログラミング言語でも当てはまります。1と書くと、xに1だけ加算されます。これを繰り返すと、xは、1、2、3、4・・・・・・と増加していきます。0に戻す例えば、回転運動で一周させるプログラムを書く場合に、xを角度とすると、xを増加させれば回転し、やがて、xが360になれば一周です。xを増加させると、回転運動は続きますが、xは増え続けてしまいます。730、は回転運動としては同じ角度ですが、xの値は異なります。xが増加して360に到達したときに、xをゼロにリセットするのが望ましいですね。これで正解なんですが、ボクは子供の頃、BASICプログラムをしているときに、if文は処理速度が遅いので、なるべく論理演算を使え、と学びました。その教訓が今のコンピュータに当てはまるのか、今のプログラミング言語に当てはまるのかは知りませんが、実際、上記の処理を論理演算で行う方法があります。それは、%を使う方法です。%は割り算の余りを求めます。これを応用すると、xが360になると自動的に0になる論理演算が可能です。すると、xが0から359までなら、そのままxの値になりますよね。xが1ずつ増加して、xが360になった瞬間、余りはゼロになり、すなわち、xはゼロに戻るわけです。結果として、xは0から360の増加を繰り返します。これだけのコトですが、ボクは、なるほどなあ、と思ったわけです。プログラミングの話と言うより、算数の話ですね。プログラムの高速化と言うのは、こう言うコトの積み重ねでは無いでしょうか。小学生の頃、ボクは、あらゆる処理をif文では無く論理演算で書くコトに知恵を絞っていました。角度を1度ずつ加算していき、360度回転したらゼロに戻す実例。はてなブログPro勉強コンサルタント。