日本語でプログラミングができる有料のゲーム作成用ソフトを使っています。
変数操作と条件分岐は実装されていますが、配列が実装されていません。
16進数も2進数も実装されていないため、2進数を10進数に直して計算していますが、
立っているビットを全部大きい方から数えるプログラムまではできましたが、
これからオセロの着手可能な場所を探して石を反転する処理を作る時に、自分の作ったプログラムでは頭が混乱したため、ネットで見つけた「反転する石を計算」を使ってみたいと思いました。
下の計算式を自分で作りたいですが分からない所を教えて下さい。
盤面で白黒の順に並んでいる部分を求めたい場合は、white & (black << 1) & 0xeeee とすればよい。
0xeeee は盤面の右端と左端がつながることを防ぐマスクビットである。
空・白・黒 と並んでいる場合の反転パターンを得るには、p を空白位置を表す値とするとき、
(p>>1) & white & (black<<1) & 0xeeee とするとよい。
同様に、空・白・白・黒 の最初の白のパターンは (p>>1) & white & (white<<1) & (black<<2) & 0xeeee、 2番目の白の部分は (p>>2) & (white>>1) & white & (black<<1) & 0xeeee となる。 これらの論理和を取ったものが、反転パターンとなる
まず計算式が分かりません。条件分岐、if else、 forがないのに不等号が計算式の中にあるので何をどういう順番で計算しているのかが分かりません。
0xは2進数のビットの、0の連続の省略形で、eeeeは2進数のビットを16進数表記にあらわしたものという事でしょうか?
例えば 0x0000ffff なら1111 1111 1111 1111 でしょうか?
()は普通に考えてカッコ内を先に計算するという意味でよいでしょうか?
&は2進数のビット同士を論理積演算する、という意味でよいでしょうか?2進数論理積演算の教科書は持っています。
No.1ベストアンサー
- 回答日時:
>まず計算式が分かりません。
条件分岐、if else、 forがないのに不等号が計算式の中にある>>と<<ですね。
2進数はわかりますか?シフト演算と言って>>なら右に1個、<<なら左に1個ずらすのです。
>0xは2進数のビットの、0の連続の省略形で、eeeeは2進数のビットを16進数表記にあらわしたものという事でしょうか?
そうです。
>()は普通に考えてカッコ内を先に計算するという意味でよいでしょうか?
そうです。
>&は2進数のビット同士を論理積演算する、という意味でよいでしょうか?
そうです。
もう1つ、マスク演算と言って
a&0xf0 とすればaの上位4ビットが、a&0x0fとすれば下位4ビットが求められます。
分かりやすく教えて頂きありがとうございました。
不等号ではないのは教えて頂くまで思いもよりませんでした!
マスク演算も知らなかったため、大変参考になりました。早い回答ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルVBAで xlOn xlOff の切替
-
基本情報処理技術者試験問題が...
-
SSDのデータがビット落ちにより...
-
【有効数字について】 授業で、...
-
KBのMB違いって
-
文字の容量(サイズ)についての...
-
もしコンピューターが2進数か...
-
KBとMB
-
EXCELでの16進数取り出し、上...
-
1秒は何ミリ秒とか、単位変換の...
-
1Mbpsって毎秒何キロバイト?
-
Excelの累乗について式とVBAで...
-
Pentium 4とPentium Mの性能差...
-
ffftpのサイズの単位は何でしょ...
-
マトリックスサイズが512×512で...
-
【エクセル】四捨五入・二捨三...
-
ワードの改行について
-
K KB MB について詳し...
-
Excelの時刻の不思議
-
1KBは、2の8乗X1000ではない...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルVBAで xlOn xlOff の切替
-
EXCEL16進⇒浮動小数変換したい
-
エクセルでビット1をカウント J...
-
6ビット(符号含む)の二進数
-
16ビットの符号付固定小数点...
-
2の補数形式において、アンダー...
-
9ビットの2進数を符号付整数…
-
データ量の単位について教えて...
-
2ビット、3ビット、4ビットのグ...
-
基本情報技術者試験のビットに...
-
16ビット浮動小数点数の表現...
-
基本情報技術者試験のビットに...
-
仮想通貨の取引所について
-
2進数の問題
-
ALUのオーバーフローフラグの生...
-
SSDのデータがビット落ちにより...
-
基本情報技術者試験問題
-
8ビットを2進数で表現すると…
-
浮動小数点の表現(基本情報)
-
2進数の補数表示について
おすすめ情報