【C言語】2進数10進数変換サンプル

ずいぶん久しぶりに書いたC言語、2進数10進数変換のサンプルプログラム

IPv4アドレス程度(0〜256)程度を保障している簡易変換。

2進10進変換では2、10進2進変換では2を第1引数に設定することでスイッチさせている。

久々にx進変換なんて勉強しているから、チェックツールとして作成。

ずいぶん忘れてしまったようで、、でも初学だった大学時代から考えると体になじみやすい

#include <stdio.h>

int main(int argc, char *argv[])
{
int flg;
int decimal;
int binary = 0;
int base = 1;
int tmp = 0;
flg = atoi( argv[1] );
if(flg  == 2)
{
  binary = atoi( argv[2] );
  tmp = binary;
  /* 2進数を10進数に変換 */
  while(binary>0){
   decimal = decimal + ( binary % 10 ) * base;
   binary = binary / 10;
   base = base * 2;
    }
    /* 変換した10進数の出力 */
  printf("%08d\t%d\n",tmp,decimal);

}
else if(flg == 10)
{
 
  decimal = atoi( argv[2] );
  tmp = decimal;
  /* 10進数を2進数に変換 */
  while(decimal>0){
   binary = binary + ( decimal % 2 ) * base;
   decimal = decimal / 2;
   base = base * 10;
   }
 
  /* 変換した2進数の出力 */
  printf("%08d\t%d\n",tmp,binary);
}

return 0;
}

コメント

タイトルとURLをコピーしました