字符串反转
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型后左移。


浙公网安备 33010602011771号