2014-06-27 40 views
-3

語句是否返回單個位或連續的位。C++中的if語句中int和int的說明

if(mask[i] & groupbit) { 
    //... 
} 

與:

  • i =一個整數
  • mask[i] =整數指針的元素
  • groupbit =一個整數
+1

什麼是你的'mask' ** **確切的數據類型? – YePhIcK

+0

聲明不會返回任何內容。聲明只是一個聲明。 –

+0

另外,整數指針沒有元素。 –

回答

2

它將導致整個整數。當你使用按位,並且兩個值的每一位都被連在一起,並且結果中的每一位都被相應地設置。結果將與數值在一起的位數相同。

這是假設你正在使用兩個整數變量。

+0

我也這麼認爲,但是評估if語句中的整數是什麼意思?我認爲如果陳述只評估真/假。 – slin6174

+2

任何非零的整數將評估爲true。這意味着你的代碼是這樣的:如果你正在比較的兩個值在同一個位置集中有一個或多個位,那麼它將評估爲true。 –

0

假設mask是指向整數類型,編譯器將執行下列操作:

  1. 訪問mask「陣列」爲整數的第i元件
  2. 確保兩個操作數的相同的尺寸(這可能涉及比特擴展或截短)
  3. 做逐位AND
  4. 如果有一個單個比特從先前AND運算結果集中關合作的價值將被視爲true,否則爲false(如果結果的每一個位爲0