二进制的操作

第一种移位最厉害

第二种负数还不通

第三种涉及两种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 }

 

转载于:https://www.cnblogs.com/kongchung/p/9729228.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值