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


Arduino ~用法及代码示例


[位运算符]

说明

C++ 中的按位 NOT 运算符是波浪号 ~ 。与 & 和 | 不同,按位 NOT 运算符应用于其右侧的单个操作数。按位 NOT 将每个位更改为其相反:0 变为 1,1 变为 0。

换句话说:

0  1    operand1
-----
1  0   ~operand1

示例代码

int a = 103;  // binary:  0000000001100111
int b = ~a;   // binary:  1111111110011000 = -104

注意事项和警告

作为此操作的结果,您可能会惊讶地看到像 -104 这样的负数。这是因为int 变量中的最高位是so-called 符号位。如果最高位为 1,则该数字被解释为负数。这种正数和负数的编码称为二进制补码。有关详细信息,请参阅有关 two’s complement 的 Wikipedia 文章。

顺便说一句,有趣的是,对于任何整数 x,~x 与 -x - 1 相同。

有时,有符号整数表达式中的符号位会引起一些意外。

相关用法


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