// fpn_binary.c : ½Ç¼ö(ºÎµ¿ ¼Ò¼öÁ¡:Floating Point Number)¿¡ ´ëÇÑ Áø¹ýº¯È¯
  // ¾Õ¿¡¼­ Á¦½ÃÇÑ ¾Ë°í¸®ÁòÀº ÀϹÝÀûÀÎ Á¤¼ö¿¡ ´ëÇÑ Áø¹ýº¯È¯Àε¥ ¹ÝÇÏ¿©,
  // ¾Æ·¡¿¡ ÀÖ´Â ¾Ë°í¸®ÁòÀº ½Ç¼ö(ºÎµ¿¼Ò¼öÁ¡)¿¡ ´ëÇÑ Áø¹ýº¯È¯ ¾Ë°í¸®ÁòÀÔ´Ï´Ù.
  // 2Áø¹ý¿¡ ´ëÇØ¼­¸¸ »ý°¢ÇØ ºÃ¾î¿ä. Âü°í·Î 8, 16Áø¹ý º¯È¯µµ ¾Æ·¡¿Í À¯»çÇÑ Çü½ÄÀ¸·Î
  // Ç¥ÇöµÉ ¼ö ÀÖÀ» °ÍÀ¸·Î »ý°¢µË´Ï´Ù. ¾Æ·¡ÀÇ ¾Ë°í¸®Áò¿¡ ´ëÇØ¼­ °£´ÜÈ÷ ¾ð±ÞÇϸé
  // Á¤¼öÀÎ °æ¿ì¿¡´Â Á¾ÀüÀÇ ¹æ½ÄÀ» ±×´ë·Î µû¸£°í, ½Ç¼ö(ºÎµ¿ ¼Ò¼öÁ¡)ÀÎ °æ¿ì Á¤¼öºÎºÐ°ú
  // ½Ç¼öºÎºÐÀ¸·Î ³ª´©¾î °è»êÀ» Çß½À´Ï´Ù. ºÎµ¿ ¼Ò¼öÁ¡¿¡ ´ëÇÑ Áø¹ýº¯È¯ ¹æ½ÄÀÇ Æ¯¼º¶§¹®¿¡
  // ³ª´©¾î¼­ »ý°¢À» Çß¾î¿ä. ±¸Ã¼ÀûÀ¸·Î Áø¹ýº¯È¯ ¹æ½Ä¿¡ ´ëÇØ¼­ ¼³¸íÇÏÁö´Â ¾Ê°Ú½À´Ï´Ù.       
 
  #include <stdio.h>
 
  #define N 30
 
  void main()
  {
          float num;
          int num1;
          float num2;
          char *p, num_arr1[N+1] = {0};
          int num_arr2[N+1];
          int i, r, cnt;
 
          printf("¼ö¸¦ ÀÔ·ÂÇϼ¼¿ä : ");
          scanf("%f", &num);
 
          printf("2Áø¹ýÀ¸·Î º¯È¯ : ");
          if( num < 0) {
                  printf("-");
                  num = -1 * num;
          }
 
          if( num == (int)num) {
                  num1 = (int)num;
                  num2 = 0;
                
                  for( i = 0; num1 != 0; i++) {
                          r = num1 % 2;
                          num_arr1[N-1-i] = r + '0';
                          num1 = num1 / 2;
                  }
 
                  p = num_arr1+N-i;
 
                  printf("%s", p);
          }
          else {
                  num1 = (int)num;
                  num2 = num - num1;
 
                  for( i = 0; num1 != 0; i++) {
                          r = num1 % 2;
                          num_arr1[N-1-i] = r + '0';
                          num1 = num1 / 2;
                  }
 
                  p = num_arr1+N-i;
 
                  // ¼Ò¼öºÎºÐ¿¡ ´ëÇÑ Áø¹ýº¯È¯
                  cnt = 0;
                  do {
                          num2 = num2 * 2;
                          num_arr2[cnt] = (int)num2 % 2;
                          cnt++;
                  } while(num2 != (int)num2);
 
                  printf("%s.", p);
                  for( i = 0; i < cnt; i++) {
                          printf("%d", num_arr2[i]);
                  }
          }
          printf("\n");
  }