

日本語でプログラミングができる有料のゲーム作成用ソフトを使っています。
変数操作と条件分岐は実装されていますが、配列が実装されていません。
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を探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ジークアクスのサイコガンダム...
-
16ビットの符号付固定小数点...
-
エクセルVBAで xlOn xlOff の切替
-
実行計画の「COST」と「BYTE」...
-
32bit = 4GB(バイト)?
-
DVD-R 4.7GBって、何byte でし...
-
なぜ、i++なのか?(ものすごく...
-
EXCELでの16進数取り出し、上...
-
エンディアンについて
-
K KB MB について詳し...
-
1TBHDDに音楽ファイルは何ア...
-
フリーソフトYokkaGrepでの置換...
-
正規表現による改行の置換
-
任天堂64の64 CPUの仕...
-
Windows・Linuxのバイナリコー...
-
カナカナの(半)濁点がついた文...
-
アルファベット30文字は何バイ...
-
ワードの改行について
-
携帯電話の略語であるMBって英...
-
プログラム言語FortranとCの違...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ジークアクスのサイコガンダム...
-
EXCEL16進⇒浮動小数変換したい
-
2ビット、3ビット、4ビットのグ...
-
【暗号資産】Bitcashって仮想通...
-
エクセルVBAで xlOn xlOff の切替
-
エクセルでビット1をカウント J...
-
SSDのデータがビット落ちにより...
-
ALUのオーバーフローフラグの生...
-
データ量の単位について教えて...
-
16ビットの符号付固定小数点...
-
6ビット(符号含む)の二進数
-
9ビットの2進数を符号付整数…
-
ビット数と表現できる数の範囲...
-
仮想通貨の取引所について
-
浮動小数点の表現(基本情報)
-
基本情報技術者試験のビットに...
-
基本情報技術者試験問題
-
8ビットを2進数で表現すると…
-
情報科学
-
【有効数字について】 授業で、...
おすすめ情報