unsigned int PointSet[] = { (10<<16) | 3, (4<<16) | 2, 0xFFFF0002 };
これはどういう意味ですか?この配列は何を意味しますか?
| 3
どのような操作ですか?
unsigned int PointSet[] = { (10<<16) | 3, (4<<16) | 2, 0xFFFF0002 };
これはどういう意味ですか?この配列は何を意味しますか?
| 3
どのような操作ですか?
これは、3つの整数の配列を作成します。カンマは、定数値式を区切ります。 |ビットごとのOR演算子です。
(10<<16)|3 = (0xA<<16)|3 = (0x000A0000)|0x3 = 0x000A0003
(4<<16)|2 = (0x00040000)|0x2 = 0x00040002
あなたの配列は{0x000A0003、0x00040002、0xFFFF0002}
ありがとうございました:) –
unsigned int PointSet[] = { (10<<16) | 3, (4<<16) | 2, 0xFFFF0002 };
10 = 0000 0000 0000 0000 0000 0000 0000 1010 (Binary)
0x0000000A = 0 0 0 0 0 0 0 A
0000 0000 0000 1010 0000 0000 0000 0000 (16 bit shift)
0x000A0000 = 0 0 0 A 0 0 0 0
3 = 0000 0000 0000 0000 0000 0000 0000 0011
0x000A0003 = 0000 0000 0000 1010 0000 0000 0000 0011 (... | 3)
0x00000004 = 0000 0000 0000 0000 0000 0000 0000 0100
0x00040000 = 0000 0000 0000 0100 0000 0000 0000 0000 (16 bit shift)
0x00000002 = 0000 0000 0000 0000 0000 0000 0000 0010
0x00040002 = 0000 0000 0000 0100 0000 0000 0000 0010 (... | 2)
unsigned int PointSet[] = {0x000A0003, 0x00040002,0xFFFF0002};
'です|'ビット単位のORです。 '| 3 'は最後の2ビットを1にセットする。 – Cornstalks
*ビット単位のOR * –
この配列は、ビット単位の演算子を使用してコンパイル時に計算される定数で初期化されます。 '|'はビットごとに 'OR'、' << 'はビットシフト、' 0x'は16進整数リテラルの接頭辞です。 – dasblinkenlight