以二进制形式输出一个十进制数利用for循环和移位以及&运算:
& 和 >> 的计算方式想必大家都知道,>> 相当于将数进行 /2 运算,&,1&1=1,0&*=0;
不多说,直接上代码:
package com.cyx.ex1;
2 import java.util.Scanner;
3
4 public class Change{
5 public static void main(String[] args){
6 System.out.print("请输入一个整数:");
7 Scanner scan=new Scanner(System.in);
8 while(scan.hasNext()){
9 int num=scan.nextInt();
10 System.out.println("输入值:"+num);
11 System.out.println(num+"的二进制为:"+toBinary(num));
12 System.exit(0);
13 }
14 }
16
17 public static String toBinary(int num){
18 String binary="";
19 if(num==0){
20 return "0";
21 }
22 for(int n=num;n>0;n/=2){
23 //将输入值与1进行与运算
24 //比如4的二进制数为:0100
25 //与1(0001与运算后得到 0
26 //将4(0100)向右位移四次并且与1与运算后得到0010
27 int bit = num&1;
28 binary = binary+bit;
29 num = num >>1;
30 }
31 //最后将得到的字符串binary=0010倒序输出即可
32 return new StringBuffer(binary).reverse().toString();
33 }
34
35 }
结果展示: