軟體測試2021年常見面試題及答案整理(共一千道面試題)
阿新 • • 發佈:2021-10-12
例題:
根據要求如果想讓某數的第 i 位變成0,那麼需要&上一個第 i 位為0的數,因為0/1 & 0都等於0,但是其他位需要不變,則其他位需要& 1,因為0&1=1,1&1=1,&上1不會發生變化
如果想讓某數的第 i 位變為1,那麼需要 | 上一個第 i 位為1的數,以為0/1 | 1都等於1,但是其他位需要不變,則其他位需要 | 上1,因為0|0=0,1|0=1,|上0不會發生變化
異或上1就會變成相反的數,而異或上0則不變
程式碼如下:
運算子:
左移 <<
x 中所有的二進位制位向左移動 j 個位置,而右邊填入0
所有小於int的型別,移位以 int 的方式來做,結果是 int
x <<= 1等價於x *= 2
x <<= n等價於x *= 2^n
右移 >>
x中所有的位向右移動 j 個位置
所有小於 int 的型別,移位以 int 的方式來做,結果是 int
x >>= 1等價於x /= 2
x >>= n等價於x /= 2^n
&
如果參加&運算的是負數,則以補碼的形式表示為二進位制數,然後按位進行“與”運算。
用途:清零、取一個數中某些指定位
|
用途:用來對一個數據的某些位定值為1
^
異或(XOR),判斷兩個相應的位值是否為“異”,相異為1.
用途:使特定位翻轉(要使哪幾位翻轉,將與其相異或的數的哪幾位置1)
與0相異或,保留原值
交換兩個值,不用臨時變數
~
使某個整數的最低一位為0(a = a&~1)(~1 最後一位為0,其餘都為1)
~比&優先順序高