我們知道在java語言中一個int類型有32個0或1組成。我們要計算有多少個1,這裡主要以int型數據為例來分析。比如15在二進制中表示的是1111,有4個1,所以返回4。再比如16在二進制中表示的是10000,隻有一個1,所以返回1。這題解法比較多,我們將會逐個分析。
一,通過移動數字計算首先想到的是把要求的數字不停的往右移,然後再和1進行與運算,我們就以13為例畫個圖來分析下
看明白瞭上面的分析,代碼就很容易多瞭,我們來看下代碼
public int bitCount(int n) {
int count = 0;
for (int i = 0; i < 32; i++) {
if (((n >>> i) & 1) == 1) {
count++;
}
}
return count;
}
今天讲一个身居高位的国企总经理,享受副厅级待遇,却因为两大爱好,最后落了个被判死刑的可悲结果。说起他的这两个爱好,真 ...
我平时喜欢研究汽车用品,备胎已经被我扔到了床底下,我是 @广哥聊汽车,欢迎关注我,有问题欢迎留言讨论。
11人拯救整個世界 二戰重水之戰http://www.icpchaxun.com/video/1049796177821855744這期我們來給大傢講述,戰地V 北極之光 ...