uchar data_in[3] = { 0 };
data_in[0] = 200;
data_in[1] = 1;
data_in[2] = 0;
u16 zoom_value = (data_in[1] << 8) | data_in[0];
解析 (data_in[1] << 8) | data_in[0]
的作用与示例:
该表达式用于将两个字节(data_in[1] 和 data_in[0])合并为一个 16 位的整数。
具体逻辑如下:
- data_in[1] << 8:将 data_in[1](高字节)左移 8 位,占据高 8 位的位置。
- | data_in[0]:将 data_in[0](低字节)作为低 8 位与高字节合并。
- 最终得到一个 16 位整数,其值的计算公式为:
Value= Value=(data_in[1]×256)+data_in[0]
可以进一步理解:
Value = (a << 8) | b,
则Value=(a×256)+b;
所以
u16 zoom_value = (data_in[1] << 8) | data_in[0];
等于 1*256 +200 = 456;