C言語で数値をある基数から別の基数に変換する
#include
long convertInBase10 (long n, int base)
{
long 商 = n / 10;
剰余 = n % 10;
if (quotient == 0)
return が残ります。
else
return convertingBase10 (商, 基数) * 基数 + 剰余;
}
long convertEnBase2 (long n, int base)
{
long 商 = n / 2;
剰余 = n % 2;
if (quotient == 0)
return が残ります。
else
return convertEnBase2 (商, 基数) * 基数 + 剰余;
}
long convertInBase4 (long n, int base)
{
long 商 = n / 4;
剰余 = n % 4;
if (quotient == 0)
return が残ります。
else
return convertenBase4 (商, 基数) * 基数 + 剰余;
}
long convertInBase8 (long n, int base)
{
long 商 = n / 8;
長い剰余 = n % 8;
if (quotient == 0)
return が残ります。
else
return convertenBase8 (商, 基数) * 基数 + 剰余;
}
long convertInBase16 (long n, int base)
{
long 商 = n / 16;
長い剰余 = n % 16;
if (quotient == 0)
return が残ります。
else
return convertingBase16 (商, 基数) * 基数 + 剰余;
}
int main() {
long n = 17;
int base = 10;
//10進数 -->base(2,4,8,16)
printf ("%ld から基数 %2d = %ld 基数 2\n",n, base, base2 に変換 (n, base);
printf ("%ld から基数 %2d = %ld 基数 4\n",n, base, base4 に変換 (n, base);
printf ("%ld から基数 %2d = %ld 基数 8\n",n, base, base8 に変換 (n, base) );
printf ("%ld to base %2d = %ld to base 16\n",n, base, convert toBase16 (n, base);
//バイナリ -->10 進数
n = 1010;
= 2;
printf ("%ld to base %2d = %ld to base 10\n",n, base, base10 に変換 (n, base);
//16進数 -->10 進数
n = 124;
= 16;
printf ("%ld to base %2d = %ld to base 10\n",n, base, base10 に変換 (n, base);
//8進数 -->binary
n = 12;
= 8;
printf ("%ld to base %2d = %ld to base 10\n",n, base, base10 に変換 (n, base);
0を返します。
}