プレイ日記
だにえる haru2016nen
シフト演算子ってどう使うのです? 関数??
8そうだね
プレイ済み
返信[1]
親投稿
Scratchy forun.cookie
A=&B1 << 2 '左に2ビットずらす ?A '4と表示される(2進数で100) こんな感じですかね?
3そうだね
プレイ済み
返信[2]
親投稿
MIKI ifconfig
y>=0 の時 x << y == (xの整数部) * 2^(yの整数部) x >> y == (xの整数部) * 2^(-(yの整数部)) y<0 の時 0
4そうだね
プレイ済み
返信[3]
親投稿
BlackSoft BlackSoft.mkII3g
シフトを何に応用するのか、というのがなかなか難しいと思いますが、例えば一つの変数を32個(32bit)のフラグの集まりと考えた場合 FOR SH=0 TO 31 IF FLAG AND 1<<SH THEN ... NEXT のような使い方をします。 「配列にフラグを一つずつ格納すればいいじゃん?」 ってなりそうですが、世の中で動いているシステムのデータのやり取りは、なるべく容量を減らすためにこんな感じで行われています。 リソースが潤沢にあるプチコン上では、敢えて使うシーンは無いかも知れないですね。 まあ、参考までに。
5そうだね
プレイ済み
返信[4]
親投稿
シフト演算子は、ビットをシフト(ずらす)演算子だから二進数を理解してないとイマイチピンとこないんじゃないかなって思いますね。 関数と言うよりは、演算子だからその名の通り+やーなど演算子の仲間じゃないかなって思います。
2そうだね
プレイ済み
返信[5]
親投稿
マギー M191246
MIKIさんの補足です。 Xの整数部<0で、Yの整数部<0のときの X>>Yは、-1になります。 とか書いて、 私もグラフィック座標をテキスト座標に 変換しようとするとき、 ついでに整数化もしておこうとして 使うくらいですけど。
2そうだね
プレイ済み
返信[6]
親投稿
ΖΕΧ ZEX256
単純な目的なら、 左に1bitシフトすると数値は倍になる 右に1bitシフトすると数値は半分になる ビットシフトは、掛け算、割り算より高速(なはず!大抵の言語では。プチコンでは知らないけど)
2そうだね
プレイ済み
返信[7]
親投稿
シフトってプチコンにもあったんですね。 こんなに便利なものもっと早く知っておけばよかったです。
1そうだね
プレイ済み
返信[8]
親投稿
2の累乗で乗除算してついでに端数を飛ばしたいときに便利なやつ
4そうだね
プレイ済み
返信[9]
親投稿
だにえる haru2016nen
なるほど、 「-」符号が「*-1」を省略しているのと 似た感じですね。
1そうだね
プレイ済み