我无法理解这条线的作用:
fBuffer[fByteIndex] += 1 << (fBitIndex - 1);
Run Code Online (Sandbox Code Playgroud)
在哪里:
unsigned char fBuffer[32];
int fBitIndex;
Run Code Online (Sandbox Code Playgroud)
和:
for ( int i = 0; i < 32; i++ )
fBuffer[i] = 0;
fBitIndex = 8;
Run Code Online (Sandbox Code Playgroud)
什么<<做呢?
<<是左移运算符,假设fBitIndex代码为 8
fBuffer[fByteIndex] += 1 << (fBitIndex - 1);
Run Code Online (Sandbox Code Playgroud)
相当于
fBuffer[fByteIndex] += 128;
Run Code Online (Sandbox Code Playgroud)
为什么?因为左移意味着您将值的位“左移”;在您的情况下,00000001(1)向左移动 7 次,变为10000000(128)。
| 归档时间: |
|
| 查看次数: |
628 次 |
| 最近记录: |