剑指offer十一:二进制中1的个数
生活随笔
收集整理的這篇文章主要介紹了
剑指offer十一:二进制中1的个数
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
題目描述
輸入一個(gè)整數(shù),輸出該數(shù)二進(jìn)制表示中1的個(gè)數(shù)。其中負(fù)數(shù)用補(bǔ)碼表示。
package com.jianzhioffer;public class NumberOf1Test {public static void main(String[] args){int res = NumberOf1(7);System.out.println("============"+res);res = NumberOf1(-5);System.out.println("============"+res);res = NumberOf1_(7);System.out.println("============"+res);res = NumberOf1_(-5);System.out.println("============"+res);}public static int NumberOf1_(int n){int count=0;while(n!=0){count++;n=(n-1)&n;//由于每次n和n-1相與都會(huì)導(dǎo)致,n的最右邊的為1的元素變成0,因此總共要循環(huán)的次數(shù)就是1的個(gè)數(shù)次。}return count;}public static int NumberOf1(int n) {int tag=1;int count=0;while(tag!=0){// 0000 0111// 0000 0001//System.out.printf("%d, %d, %d\n",n, tag, n&tag);if((n&tag)!=0)count++;tag=tag<<1; }return count; } }?
總結(jié)
以上是生活随笔為你收集整理的剑指offer十一:二进制中1的个数的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 剑指offer十:矩形覆盖
- 下一篇: 《深入理解计算机系统》读书笔记六:整数表