字符串反转

RT,输入一个int型的正整数,计算出该int型数据在内存中存储时1的个数。

import java.util.Scanner;
public class Main{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int count = 0;
        while(n>0){
            if((n&1)>0){
                count++;
            }
            n = n>>1;
        }
        System.out.println(count);
    }
}

算法利用了算数右移,也即,直接判断int型的正整数的二进制数字,从低位到高位,判断二进制的int型整数的1的个数。

 

算数右移:>>   补齐为32位int型后右移,具有符号位。

逻辑右移:>>> 补齐为32位int型后右移,不具有符号位。

左移:<<          补齐为32位int型后左移。

 

 

 

posted @ 2021-10-29 23:33  辰雨丶  阅读(27)  评论(0)    收藏  举报