“位與”的版本間的差異

來自ALSROBOT WiKi
跳轉至: 導航、 搜索
(以“按位與(&)<br> 按位操作符在變量的位級執(zhí)行運算。它們幫助解決各種常見的編程問題。以下大部分資料來自一個有關位數(shù)...”為內(nèi)容創(chuàng)建頁面)
 

2014年9月12日 (五) 13:30的最后版本

按位與(&)

按位操作符在變量的位級執(zhí)行運算。它們幫助解決各種常見的編程問題。以下大部分資料來自一個有關位數(shù)學的優(yōu)秀教程,或許可以在這里找到。[1]


描述和語法


以下是所有這些運算符的描述和語法。更詳細的資料或許可以在參考指南中找到。


按位與(&)

在C++中按位與運算符是單個與符號,
用于其它兩個整型表達式之間使用。按位與運算獨立地在周圍的表達式的每一位上執(zhí)行操作。根據(jù)這一規(guī)則:如果兩個輸入位都是1,結果輸出1,否則輸出0。表達這一思想的另一個方法是:

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

在Arduino中,int型是16位的。所以在兩個整型表達式之間使用&將會導致16個與運算同時發(fā)生。代碼片斷就像這樣:

    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。


按位與的其中一個最常用的用途是從一個整型數(shù)中選擇特定的位,常被稱為掩碼屏蔽??慈缦率纠?br />