算法方面:1、初步了解了位运算的具体过程与原理,了解了数字以二进制存储时的形式,以及正常运算和位运算对于不同类型数字的区别。
例题:输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。
import java.util.Scanner; /** * 计算输入数值的二进制中1的个数,其中负数以补码计算 * 对付进制问题就要用位运算 */ public class TheNumberOf1 { public static int NumberOf1(int n) { int m=0; for(int i=0;i<32;i++){ //使用位运算可以应对正数和负数 if((n>>>i&1)==1){ m++; } } // while(n==0){ //而普通的除二取余法只能应对正数 // if(n%2==1){ // m++; // } // n=n/2; // } return m; } public static void main(String[] args) { Scanner scanner=new Scanner(System.in); int n=scanner.nextInt(); System.out.println(TheNumberOf1.NumberOf1(n)); } }