私は自分のシンプルな描画エンジンを作っています。ビット単位の比較と呼ばれるものを使用して、変数が特定の値に設定されているかどうかを判断しようとしていますが、間違っている可能性があります。
私はいつも、以下が何であるか、そしてそれをどのように使用するかについて少し混乱してきました:
int DRAW_REPEAT_X = 70001; // I have a feeling I should make this value binary instead of a unique number, ie, 0
int DRAW_REPEAT_Y = 70002; // I have a feeling I should make this value binary instead of a unique number, ie, 2
int drawMethod = DRAW_REPEAT_X | DRAW_REPEAT_Y; // this means I want to repeat an image on both the x and y axis doesn't it?
// Now I want to check if drawMethod has DRAW_REPEAT_X set: this is where I struggle to know how to check this
// Is the following correct?
if (drawMethod && DRAW_REPEAT_X) {
// the user wants me to repeat an image along the x axis
}
// Now I want to check if drawMethod has DRAW_REPEAT_Y set: this is where I struggle to know how to check this
if (drawMethod && DRAW_REPEAT_Y) {
// the user wants me to repeat an image along the x axis
}
次のコードは、DRAW_REPEAT_Xが設定されているかどうかを正しくチェックしていますか?私のandingチェックでは常に1を返します。
編集 そして、両方のビットが設定されているかどうかを確認するには、これを行いますか?
if (drawMethod & DRAW_REPEAT_X & DRAW_REPEAT_Y) {
// both set
}
// OR
if (drawMethod & DRAW_REPEAT_X && drawMethod & DRAW_REPEAT_Y) {
// both set
}