當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


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大神的英文原創作品 ~。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。