当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Arduino &用法及代码示例


[位运算符]

说明

C++ 中的按位与运算符是一个与号 & ,用于两个其他整数表达式之间。按位与对周围表达式的每个位位置进行独立运算,根据此规则:如果两个输入位均为 1,则结果输出为 1,否则输出为 0。

另一种表达方式是:

0  0  1  1    operand1
0  1  0  1    operand2
----------
0  0  0  1    (operand1 & operand2) - returned result

在 Arduino 中,int 类型是 16 位值,因此在两个 int 表达式之间使用 & 会导致同时发生 16 次 AND 操作。

示例代码

在如下代码片段中:

int a =  92;    // in binary: 0000000001011100
int b = 101;    // in binary: 0000000001100101
int c = a & b;  // result:    0000000001000100, or 68 in decimal.

a 和 b 中的 16 位中的每一个都通过按位与处理,所有 16 位结果都存储在 c 中,产生二进制值 01000100,即十进制 68。

按位与最常见的用途之一是从整数值中选择特定位(或位),通常称为屏蔽。请参阅下面的示例(特定于 AVR 架构)。

PORTD = PORTD & 0b00000011;  // clear out bits 2 - 7, leave pins PD0 and PD1 untouched (xx & 11 == xx)

相关用法


注:本文由纯净天空筛选整理自arduino.cc大神的英文原创作品 &。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。