C 操作符優先順序帶來的錯誤

2022-09-03 13:09:09 字數 382 閱讀 1016

在刷leetcode題目:190. 顛倒二進位制位:顛倒給定的 32 位無符號整數的二進位制位時,可以利用左移和右移操作符來實現數字翻**

錯誤解法:

class

solution

return

num;

}};

這裡《操作符優先順序低於+,本來的想法是num每次迴圈都會左移一位,n會右移i位並且取最低位的數。錯誤的解法導致實現是num每次移1+((n>>i)&1)位了。

正確的解法:

class

solution

return

num;

}};

多了個括號而已。

c++操作符的優先順序參考: 

c 操作符優先順序

c 操作符的優先順序 操作符及其結合性 功能 用法l ll 全域性作用域 類作用域 名字空間作用域 name class name namespace namell lll.成員選擇 成員選擇 下標 函式呼叫 型別構造 object.member pointer member variable ex...

C 操作符優先順序

c 操作符的優先順序 操作符及其結合性 功能 用法l l l 全域性作用域 類作用域 名字空間作用域 name class name namespace name l l l l l 成員選擇 成員選擇 下標 函式呼叫 型別構造 object.member pointer member variab...

操作符優先順序

操作符優先順序 優先順序運算子 名稱或含義 使用形式 結合方向說明1 陣列下標 陣列名 常量表示式 左到右 圓括號 表示式 函式名 形參表 成員選擇 物件 物件.成員名 成員選擇 指標 物件指標 成員名2 負號運算子 表示式 右到左單目 型別 強制型別轉換 資料型別 表示式 自增運算子 變數名 變數...