劍指offer 統計二進位制整數中1的個數

2021-07-16 12:06:48 字數 578 閱讀 1901

方法 1

【知識點】:

1 整數-要判斷整數的正負之分

2 位操作:左移(num《右移(num>>n): 正數在左邊補齊n個0,負數在左邊補齊n個1

3二進位制位數統計:依次從二進位制尾端判斷當前位置的0-1情況(利用與pos&1操作),當判斷倒數第二位時候(&10),倒數第三位(&100)。。。,即每次1左移1位。

4 flag的移位為程式構建的迴圈終止條件(33次移位後,flag變為0),迴圈總共執行32次。

private static int numberofone(int num) 	

return count;

}

方法 2

解題思路:

n&n-1的位操作相當於為n 消除了乙個1

n-1的二進位制是在n右邊數第一位的1開始,此1之前的保持不變 ,此處的1變為0,此1以後的變的與原來相反。

private static int numberofone2(int num) 

return count;

}

劍指Offer 擴充套件 二進位制 小公尺

世界上有10種人,一種懂二進位制,一種不懂。那麼你知道兩個int32整數m和n的二進位制表達,有多少個位 bit 不同麼?輸入例子 1999 2299 輸出例子 7 分析 將兩個整數逐位進行比較,累加不同位的個數,直至兩個數都為0.比較兩個數的最後一位,然後分別右移一位,直至兩個數都為0.defin...

劍指offer 統計二進位制1與指數的實現

1 輸入乙個整數,輸出該數二進位制表示中1的個數。其中負數用補碼表示。static int numberof1 int n return count 2 給定乙個double型別的浮點數base和int型別的整數exponent。求base的exponent次方。public double powe...

整數二進位制充當統計模型

那麼先理清楚需求,只記錄最近n次的情況,歷史情況無需記錄,記錄的時候得實時統計最近n次的情況得出一些結論,記錄的qps很高。如下 初始化的二進位制值 0 private static final long start data 1 二進位制的記錄的位數 private static final lo...