演算法目的:統計整數的二進位制表達中有多少個1
演算法實現原理:使用位運算,正負號處理問題。
實現:
/*
* to change this license header, choose license headers in project properties.
* to change this template file, choose tools | templates
* and open the template in the editor.
*/package algorithm_database;
/**
* @author zhengchao
*/public class countone
public static int count1(int x)
return res;
}}/*
<< :左移運算子,num<<1,相當於num*2;
>>:右移運算子,num>>1,相當於num/2;
>>>:無符號右移,忽略符號位,空位以0補齊。
*/
注意事項:要使用無符號右移。
輸出結果:32
整數的二進位制表示
目錄總結 整數的二進位制表示,需要區分正整數和負整數來看。看正整數的二進位制表示,就要先了解一下位權。十進位制 二進位制都有位權。以 123 為例 123 1 10 2 2 10 1 3 10 0。每個位置的位權都不一樣,十進位制從右到左,以 1 開始,依次乘 10 也就是說第 1 位為 1 第 2...
將整數的二進位制表示轉浮點數的二進位制表示
將整數的二進位制表示轉浮點數的二進位制表示 已知 整數3490593 16進製表示為0x354321 求 其對應的浮點數3490593.0的二進位制表示。解法如下 先求出整數3490593的二進位制表示 h 3 5 4 3 2 1 b 0011 0101 0100 0011 0010 0001 21...
整數二進位制表示中1的個數
出自 題目 輸入乙個整數,求該整數的二進位制表達中有多少個1。例如輸入10,由於其二進位制表示為1010,有兩個1,因此輸出2。分析 這是一道很基本的考查位運算的面試題。包括微軟在內的很多公司都曾採用過這道題。乙個很基本的想法是,我們先判斷整數的最右邊一位是不是1。接著把整數右移一位,原來處於右邊第...