unsigned int PointSet[] = { (10<<16) | 3, (4<<16) | 2, 0xFFFF0002 };
这是什么意思?
| 3
这是什么操作?
答案 0 :(得分:1)
这将创建一个包含三个整数的数组。逗号分隔常量值表达式。 |是按位OR运算符。
(10<<16)|3 = (0xA<<16)|3 = (0x000A0000)|0x3 = 0x000A0003
(4<<16)|2 = (0x00040000)|0x2 = 0x00040002
您的阵列是{0x000A0003,0x00040002,0xFFFF0002}
答案 1 :(得分:0)
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};