首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >"uFlags &= ~CHN_PANNING“命令是做什么的?

"uFlags &= ~CHN_PANNING“命令是做什么的?
EN

Stack Overflow用户
提问于 2018-09-08 21:13:57
回答 2查看 106关注 0票数 1

这个命令在.c/..cpp文件中意味着什么?

代码语言:javascript
复制
uFlags &= ~CHN_PANNING;

根据我的研究,uFlags是位明智的标志。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 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

票数 4
EN

Stack Overflow用户

发布于 2018-09-08 21:34:45

按位和赋值操作符&=提供给表达式。

代码语言:javascript
复制
uFlags &= ~CHN_PANNING;

同样的含义

代码语言:javascript
复制
uFlags = uFlags & ~CHN_PANNING;

现在,&位级操作符用于将所有的标志位重置(清除)到0,将掩码的对应位重置(清除)为0。其他一些标志保持不变。

例如:

代码语言:javascript
复制
  11001011  (flags)
&
  10101110  (mask)
-------------------
  10001010  (result)

一元运算符~是否定式-它用值0将位转换为1,反之亦然。这意味着您的掩码~CHN_PANNING将(清除)重置(清除)到0 (或那些位),该位(或那些位)在原始CHN_PANNING中被设置为( 1)。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52239464

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档