原文:面試題:如何判斷一個數是否是2的整數次冪

題目 如何判斷一個數是不是 的整數次冪 解題方法 思路: 首先把 的整數次冪轉換成二進制數,十進制的 轉換成二進制是 B, 轉換成二進制是 B, 轉化成二進制是 B 如果一個整數是 的整數次冪,那么當它轉化成二進制時,只有最高位是 ,其他位都是 接下來如果把這些 的整數次冪各自減 ,再轉化成二進制。 這時候如果用原數值 的整數次冪 和它減 的結果進行按位與運算,也就是n amp n ,結果則為 結 ...

2020-04-27 14:04 0 2505 推薦指數:

查看詳情

如何用一個語句判斷一個整數是不是二的整數次——從一道簡單的面試題淺談C語言的類型提升(type promotion)

   最近招聘季,看JULY大哥的面試100題時,碰到這么一個擴展問題: 如何用一個語句判斷一個整數是不是二的整數次?(此題在編程之美也有)   easy, 2的整數次的二進制形式只有一個1,只要用i和i-1按位相與,結果為零就說明是: int i; bool b ...

Tue Oct 08 00:25:00 CST 2013 22 295
判斷一個數是否是2的

前言 概念: 如果一個數是2的,那么它的二進制是這樣的: 2 10 4 100 8 1000 16 10000 也就是第一個是1,其他都是0。 然后-1的話: 1 01 4 11 8 111 16 1111 正文 (num&(num-1))==0 就是了。 解釋 ...

Mon Mar 16 23:34:00 CST 2020 0 618
判斷一個整數是否為另一個整數

   最近在學習微軟推出的虛擬課程中關於網絡上最火的20個關於c#的問題,寫下關於對於這個問題的個人理解和解決思路,請各位看官笑納. 題目為:(原)判斷一個數是否2的? 這是我個人還沒看正確答案前自己的解決思路(一個小控制台程序),代碼 ...

Fri Sep 26 06:07:00 CST 2014 16 1466
判斷一個數是否是2的N次

第一種方法 暴力解法 第二種方法 示例分析 以16為例,二進制表示為 16減1為15的二進制表示為 兩者按位與 十進制表示為0,說明是2的N次。 擴展-判斷一個數是否是n的N次 參考 [算法]快速判斷一個數是否是2的次方 ...

Mon Nov 01 17:27:00 CST 2021 0 110
[算法]快速判斷一個數是否是2的次方

利用與(&)運算符 可以快速判斷一個數是否為2的次方 將2的次方寫成二進制形式后,很容易就會發現有一個特點:二進制中只有一個1,並且1后面跟了N個0, 因此問題可以轉化為判斷1后面是否跟了N個0就可以了。 如果將這個數減去1后會發現,僅有的那個1會變為0,而原來 ...

Thu Apr 09 05:28:00 CST 2020 0 1492
python判斷一個數是否是2的幾次

判斷一個數是不是2的幾次,最簡單粗暴的做法就是直接迭代除以2,這里有一個更好的方法,那就是采用位運算。 我們觀察下面屬於2的幾次的變化規律,用2進制表示。 我們會發現凡是2的幾次0除外,用二進制表示第一位全是1,后面全是0。這個規律好像是這樣但是有什么用呢,不要急 ...

Mon Dec 24 21:49:00 CST 2018 0 2301
 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM