方法 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...