这个命令在.c/..cpp文件中意味着什么?
uFlags &= ~CHN_PANNING;根据我的研究,uFlags是位明智的标志。
发布于 2018-09-08 21:19:58
~是位否定。它将011001转换成100110等。如果你用数字的否定位来表示,你可以从左手边的位中移除右手边的1-bits (在否定位之后,1转向0s,如果它是&-ed with 0,则没有位可以保持1 )。0转向1,&-ing和1不改变原始位)。
因此,bitset0 &=~ bitset1 (或bitset0 &~ bitset)是一种用于(位)集减法的C/C++成语。它从bitset1中减去bitset0 (即数学表示法中的bitset0 \ bitset1 ),可能(在=版本中)将结果分配给bitset0。
发布于 2018-09-08 21:34:45
按位和赋值操作符&=提供给表达式。
uFlags &= ~CHN_PANNING;同样的含义
uFlags = uFlags & ~CHN_PANNING;现在,&位级操作符用于将所有的标志位重置(清除)到0,将掩码的对应位重置(清除)为0。其他一些标志保持不变。
例如:
11001011 (flags)
&
10101110 (mask)
-------------------
10001010 (result)一元运算符~是否定式-它用值0将位转换为1,反之亦然。这意味着您的掩码~CHN_PANNING将(清除)重置(清除)到0 (或那些位),该位(或那些位)在原始CHN_PANNING中被设置为( 1)。
https://stackoverflow.com/questions/52239464
复制相似问题