以二進位制形式輸出一個十進位制數利用for迴圈和移位以及&運算
阿新 • • 發佈:2019-02-01
以二進位制形式輸出一個十進位制數利用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 }
結果展示: