1989年開業 情報工学部門 文部科学省登録番号 第22082号 公益社団法人日本技術士会会員 東大阪商工会議所会員

≫サンプルプログラム一覧 

オープンソース/C言語サンプルプログラム 10進数→2進数変換(筆算)

●10進数を入力すると、筆算で2進数に変換し表示するプログラムです。
●途中経過を筆算の形で表示します。
 ≫ソースファイルのダウンロード: binary042.c

【問題】
●大きな数を入力し、自分で計算した結果と比較してみよう。
●関数 fflush( ) の働きは何か。
●2進数の1の位が格納される、配列 c の要素の添字は何か。
●この筆算で2進数が求まる仕組みを説明しなさい。
●0や負数を入力しても、正しく結果を表示するように改造してみよう。

/**********************************/
/*  10進数→2進数変換(筆算)  */
/**********************************/
#include <stdio.h>
#include <stdlib.h>
void  main( )
{
    char  c[128];
    int   n,m,i;

    printf("\n***10進数を2進数に変換します***");
    printf("\n10進数: "); fflush(stdout);
    gets(c);                          // 文字列を入力
    n=atoi(c);                        // 整数値に変換

    printf("\n 2)%6d\n",n);

    for( i=0; n>0; i++ )              // n>0 のとき繰り返す
      {
        printf("  -------\n");
        m=n%2;                        // 2で割ったあまり
        n=n/2;                        // 2で割る
        printf(" 2)%6d … %d\n",n,m);
        c[i]=m+'0';                   // 文字1桁格納
      }

    printf("\n答 ");
    for( i--; i>=0; i-- )             // 大きい位から表示
      { printf("%c",c[i]); }
    printf("\n");
}
   

※SSL暗号化通信対応

佐伯英子技術士事務所 〒542-0073 大阪市中央区日本橋 1-14-13 サンオフィス日本橋601  E-mail: info@saeki-pe.com