【劍指offer中等部分4】二進位制中1的個數(java)

剛入坑AI的小白發表於2020-12-04

題目描述

輸入一個整數,輸出該數32位二進位制表示中1的個數。其中負數用補碼錶示。

分析

首先大家如果對原碼、反碼、補碼概念模糊,可以去百度回顧回顧。
該題的意思就是先將輸入進的整數變成二進位制數,然後統計其二進位制數中1的個數,我們可以將二進位制數逐位與1進行與操作,如果與後為1,則是1,那麼個數就+1。這裡十進位制做與操作時會自動轉化成二進位制。
在這裡插入圖片描述
程式碼如下:

public class Solution {
    public int NumberOf1(int n) {
        int count = 0;
        while(n != 0){
            if((n & 1 ) == 1){
                count++;
            }
            n = n >>> 1;
        }
        return count;
    }
}

在這裡插入圖片描述

相關文章