二进制的操作

第一种移位最厉害

第二种负数还不通

第三种涉及两种char转int的方法

 1 import java.util.Scanner;
 2 public class 二进制操作 {
 3     //way001
 4     public static int Decimal2Binary(long n) {
 5         int indexof1=0; 
 6         for(int i=31;i>=0;i--) {
 7             long num=(n>>i&1);
 8             //System.out.print(num);
 9             if(num==1)
10                 indexof1++;
11         }
12         //System.out.println();
13         return indexof1;
14     }
15     //way002
16     public static void Decimal2Binary2(long n,int base) {
17         String string="";
18         while(n!=0) {
19             string=n%base+string;
20             n/=base;
21         }
22         System.out.println(string);
23     }
24     //way003
25     public static int Decimal2Binary3(int n) {
26         int indexof1=0;
27         String string=Integer.toBinaryString(n);
28         for(int i=0;i<string.length();i++) {
29             //if(Integer.valueOf(String.valueOf(string.charAt(i)))==1)
30             if(string.charAt(i)-'0'==1)
31                 indexof1++;
32         }
33         System.out.println(string);
34         return indexof1;
35     }
36     public static void main(String[] args) {
37         Scanner scanner=new Scanner(System.in);
38         while(scanner.hasNext()) {
39             int n=scanner.nextInt();
40             System.out.println(Decimal2Binary(n));    
41             //System.out.println(Decimal2Binary3(n));
42         }
43     }
44 }

 

posted @ 2018-09-30 13:37  kongchung  阅读(163)  评论(0编辑  收藏  举报