網頁

2010年12月31日

十進位轉二進位、八進位、十六進位

輸入十進位整數,選擇轉換的進制(二進位、八進位、十六進位)



  1. import java.util.Scanner;
  2. public class test
  3. {
  4.     public static void main (String args [])
  5.     {
  6.        
  7.         int num = 0 , n = 0 ;
  8.         String ans = "" , hex[] = {"A","B","C","D","E","F"};
  9.          
  10.         System.out.print("請輸入一個10進位的正整數=>") ;
  11.         Scanner temp = new Scanner(System.in) ;
  12.         num = temp.nextInt() ;
  13.          
  14.         do
  15.         {
  16.             System.out.print("要轉成多少進位數? (1)2進位 (2)8進位 (3)16進位=>") ;
  17.             temp = new Scanner(System.in) ;
  18.             n = (int)temp.nextInt() ;
  19.         }while( n < 1 && n > 3 );
  20.        
  21.         switch( n )
  22.         {
  23.             case 1:
  24.                 n = 2 ;
  25.                 break ;
  26.             case 2:
  27.                 n = 8 ;
  28.                 break ;
  29.             case 3:
  30.                 n = 16 ;
  31.                 break ;
  32.         }
  33.        
  34.         while( num != 0 )
  35.         {
  36.             if( num % n >= 10 )
  37.             {
  38.                 ans = hex[ (num % n -10) ] + ans ;
  39.             }
  40.             else
  41.             {
  42.                 ans = num % n + ans ;
  43.             }
  44.             num = num / n;
  45.         }
  46.        
  47.         System.out.print(ans) ;
  48.     }
  49. }

沒有留言:

張貼留言