a034. 二進位制轉換
    日常生活中使用的是十進位,遇到十就進位,那二進位就是遇到二就進位。
    
    可以參考:【CodingBar】什麼是二進位?|程人式界科普 #01
    
    
    方法一—直接toBinaryString,超簡單暴力。
    方法二—樸實除除樂,如上圖去取除二之後的餘數,然後把順序倒過來輸出。
方法一:
/* a034. 二進位制轉換
*
* 2020/3/2
*/
import java.util.Scanner;
public class Pa034{
    public static void main(String[] args){
        Scanner scanner = new Scanner(System.in);
        while(scanner.hasNext()){
            System.out.println(Integer.toBinaryString(scanner.nextInt()));
        }
    }
}   
方法二:
/* a034. 二進位制轉換
*
* 2020/3/2
*/
import java.util.Scanner;
public class Pa034_2{
    public static void main(String[] args){
        Scanner scanner = new Scanner(System.in);
        while(scanner.hasNext()){
            int decNum = scanner.nextInt();
            boolean[] binNum = new boolean[(int)(Math.log(decNum) / Math.log(2)) + 1];
            for(int i = binNum.length - 1; i >= 0; i--){
                binNum[i] = decNum % 2 == 0? false: true; 
                decNum /= 2;
            } 
            for(int i = 0; i < binNum.length; i++){
                System.out.print(binNum[i]? 1: 0);
            }
            System.out.println();
        }
    }
}   
沒有留言:
張貼留言