ずいぶん久しぶりに書いた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;
}
コメント