#include <stdio.h>
#include <stdlib.h>

int to_binary(int num);
int to_hex(int num);


int main(int argc, char *argv[])
{
    int num=0;
    printf("이진수화 할 십진수를 입력하시오 : ");
    scanf("%d", &num);
    //int num = 123;
       
   
    printf("십진수 %d 는 이진수로 : ", num);
    to_binary(num); // num=123;
    printf("\n");
   
    printf("16진수로 : 0x");
    to_hex(num);
    printf("\n");
   
   
 
  system("PAUSE");   
  return 0;
}


int to_binary(int num) //num = 123
{
   
    int remain = num%2; //1
   
   
    if(num >=2) // 123, 61, 30,
           {
            to_binary(num/2);    //61 , 30, 15, 7
               }
    printf("%2d", remain);        //마지막 호출부터 나옴
       
}

int to_hex(int num) //num = 123
{
   
    int remain = num%16;
   
   
    if(num >=16)
           {
            to_hex(num/16);    
    }
    /*
    switch(remain)
    {
     case 10:
          printf("a");
          break;
          case 11:
               printf("b");
               break;
               case 12:
                    printf("c");
                    break;
                    case 13:
                         printf("d");
                         break;
                         case 14:
                              printf("e");
                              break;
                              case 15:
                                   printf("f");
                                   break;
          default:
                  printf("%2d", remain);  
                  break;
                  }
     */
         printf("%2c", (remain < 10) ? remain +'0' : remain - 10 + 'a');
         //0은 48
        //printf("%d", '0');
}

+ Recent posts