判斷乙個整數是否為奇數(位運算學習)

2021-10-02 21:44:52 字數 453 閱讀 7289

x >> y 表示x/(2的y次方)

x << y 表示x*(2的y次方)

10 & 3  可以看作 1010 & 0011  每位做與運算 結果為0010=2

10 | 3  可以看作 1010 | 0011  每位做或運算 結果為1011=11

這是因為編譯器在對2的指數取模操作的時候,會優化成位運算操作,所以有時二者差距很小

知道了這些就開始優化我們的**了

最開始判斷奇數:

bool judge(int x)

然後我們會優化一下布林表示式:

bool judge(int x)

在把取模轉換成位運算:

bool judge(int x)

最後可以寫成這樣:

bool judge(int x)

就大功告成了!

在這裡記錄學習過程

有什麼錯誤還請大佬指出!!

判斷乙個整數是否為偶數

python3.7 輸入乙個整數,判斷其是否為偶數 print 判斷乙個數是否為偶數 number input 請輸入乙個整數 time 1 while time 1 while not number.isdigit print 這不是乙個整數,請重新輸入 end number input numb...

判斷乙個整數是否為素數 確定乙個整數是否是2的冪

給定乙個整數,編寫乙個函式來確定它是否是2的冪。範圍 1 2 31 1 測試用例 輸入 16,輸出 true 因為 2 4 16 輸入 18,輸出 false.最明顯的暴力方法就是除以2,然後檢查它是否達到1。var poweroftwo function n 由於給出的範圍在0 2 31 1之間,...

面試 如何判斷乙個數是否為奇數?

最開始我寫的是 return num 2 1 但發現好像忘了負數.所以改為了 return num 2 0 我以為這就解決了問題,但我習慣性檢視答案時,卻發現答案用了乙個奇怪的方法 return i 1 1 這是啥東西,冷靜下來想了一會,哦哦哦.答案是直接當做二進位制進行了運算,因為二進位制狀態下,...