【问题标题】:In C, what does the & operator do when used like this: (x & y)? [duplicate]在 C 中,& 运算符在这样使用时会做什么:(x & y)? [复制]
【发布时间】:2020-06-15 05:42:54
【问题描述】:

标题说明了一切。我知道 &x 给出了 x 的地址,但是我今天遇到了多个像 (x & y) 这样的行示例,但我找不到任何解释。这是一个很难搜索的问题。

【问题讨论】:

标签: c address-operator


【解决方案1】:

这是二元与。它将在整数 a 和 b 的所有位之间执行逻辑and

它通常用于掩码,这意味着清除(强制位为零)整数的某些部分。

示例:我有一个颜色代码存储在变量 rgb 中,其中 8 位编码红色分量,8 位编码绿色分量,8 位编码蓝色分量。如果我想提取蓝色分量,我将使用& 掩码,方法如下:

int b = rgb & 0xF; // keep the last 4 bits, clear the upper bits of rgb

【讨论】:

    猜你喜欢
    • 2020-08-26
    • 2023-03-05
    • 1970-01-01
    • 2015-07-07
    • 2021-07-15
    • 2013-07-10
    • 1970-01-01
    • 2013-03-29
    • 2013-11-03
    相关资源
    最近更新 更多