さて、知っていると便利知らなくても何とかなる計算式です(笑)

まずは、ビットシフト。これは桁ずらしです。
10進数…普段私たちが使っている数字の桁ずらしを考えてみるます。 5を二桁左にずらすと500になります。さらに右に一桁ずらすと50になります。 つまり桁をずらすごとに10倍、1/10倍することになります。
ビットシフトは、桁をずらすごとに、2倍、1/2倍していく作業になります。
;左ビットシフト
	a=5
	mes "a="+a
	repeat 6,1
		b=a<<cnt
		mes "a*(2の"+cnt+"乗)="+b
	loop
	stop
if、条件判断で使用する不等号なども実は計算をしています。答えは、0か1しかありません。 あまり、使うことはないと思いますが、ifを省略するのに使えて便利です。
;不等号などの計算
	a=5
	mes "a="+a
	b=a>0 : mes "a>0="+b
	b=a>=0 : mes "(a>=0)="+b
	b=a<0 : mes "a<0="+b
	b=a<=0 : mes "(a<=0)="+b

	pos 0,100
	;値がマイナスなら0にする
	repeat 5,-2
		a=(cnt>0)*cnt
		mes "a="+a
	loop

	pos 0,200
	;値がマイナスなら0にする
	repeat 5,-2
		if cnt<0 : a=0 : else : a=cnt
		mes "a="+a
	loop
	stop
最後に論理演算ですが、これは計算として使うよりもデータの管理に使用します。 配列変数を用いると、同様のことができますが、プログラムが 複雑になりがちなので、慣れてしまえば、こちらのほうがらくだと思います。 ひとまず実行してみてどのような動作をするのか確認してみてください。
ここでは、|が強制的に1にして、&が強制的に0にする…くらいの認識で十分です。
	p=0b1010
	mes "初期状態" : gosub *check
	;属性追加
	p=p|0b0100
	mes "属性追加後" : gosub *check
	;属性解除
	p=p&0b1011
	mes "属性解除後" : gosub *check
	stop
*check
	if p&0b0001 : mes "火の属性"
	if p&0b0010 : mes "水の属性"
	if p&0b0100 : mes "風の属性"
	if p&0b1000 : mes "地の属性"
	mes "\n "
return

■ 目次へ戻る ■

Gポイントポイ活 Amazon Yahoo 楽天

無料ホームページ 楽天モバイル[UNLIMITが今なら1円] 海外格安航空券 海外旅行保険が無料!