日本語でプログラミングができる有料のゲーム作成用ソフトを使っています。
変数操作と条件分岐は実装されていますが、配列が実装されていません。
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で質問しましょう!
似たような質問が見つかりました
- その他(コンピューター・テクノロジー) 量子コンピュータの動作原理がわかりません。同じビットが、1でも0でも有って良いだろうか? 3 2023/02/04 03:20
- C言語・C++・C# numpyスライス機能を使った数値計算 2 2023/05/08 16:01
- Java java 飾子を付けること(public static・・・) ・コンソールへの出力処理はmainメ 2 2022/06/16 19:34
- 数学 以下の問題が分かりません。 8ビット浮動小数点数が、最上位ビットから順に符号1ビット、指数部3ビット 4 2023/07/22 16:06
- 計算機科学 2進数の計算について 2進数の値は全て8ビットで負数は2の補数形式とする。結果が8ビットで表現出来な 3 2023/07/22 14:08
- Excel(エクセル) エクセルの表でダブりを解消する方法を、教えてください。 5 2023/04/12 12:11
- Java javaの質問です 次の機能を有するメソッド4つを自クラスに作成し、実装したいです 【機能】 足し算 1 2022/06/15 17:49
- Excel(エクセル) VBAで組み合わせ算出やCOUNTIFSの処理を高速化したいです。 4 2022/04/07 02:38
- C言語・C++・C# C言語 3 2022/10/04 15:07
- Visual Basic(VBA) vba 等間隔の列に対しての計算 6 2022/05/17 20:15
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
6ビット(符号含む)の二進数
-
EXCEL16進⇒浮動小数変換したい
-
エクセルVBAで xlOn xlOff の切替
-
16ビットの符号付固定小数点...
-
【有効数字について】 授業で、...
-
KBとMB
-
EXCELでの16進数取り出し、上...
-
携帯電話の略語であるMBって英...
-
文字の容量(サイズ)についての...
-
実行計画の「COST」と「BYTE」...
-
COM1(RS232C)とUSB仮想COMポー...
-
32bit = 4GB(バイト)?
-
1秒は何ミリ秒とか、単位変換の...
-
KBのMB違いって
-
Stirlingについて
-
文字化けはなぜ日本語が入って...
-
なぜ1と0か?
-
CSV データのバイト数を調べる...
-
アルファベット30文字は何バイ...
-
何Mバイトになりますか?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
SSDのデータがビット落ちにより...
-
EXCEL16進⇒浮動小数変換したい
-
6ビット(符号含む)の二進数
-
エクセルVBAで xlOn xlOff の切替
-
2ビット、3ビット、4ビットのグ...
-
ALUのオーバーフローフラグの生...
-
エクセルでビット1をカウント J...
-
9ビットの2進数を符号付整数…
-
データ量の単位について教えて...
-
16ビットの符号付固定小数点...
-
16ビット浮動小数点数の表現...
-
先程+20の2の補数表現を質問さ...
-
基本情報技術者試験問題
-
2進数の補数表示について
-
(<<1) & 0xeeeeなどが分かりません
-
2の補数形式において、アンダー...
-
基本情報処理技術者試験問題が...
-
浮動小数点の問題です。
-
●ビットで表現できる状態は、最...
-
【有効数字について】 授業で、...
おすすめ情報