C言語における10進数から8進数への変換方法


  1. シンプルな方法: C言語では、10進数から8進数への変換には「%o」というフォーマット指定子を使用します。以下は、変換の手順を示すサンプルコードです。
#include <stdio.h>
int main() {
    int decimal = 42;
    printf("10進数: %d\n", decimal);
    printf("8進数: %o\n", decimal);
    return 0;
}

このコードでは、変数decimalに10進数の値を代入し、printf関数を使用して10進数と8進数の形式で表示しています。%oは8進数を表示するためのフォーマット指定子です。

  1. ループを使用した方法: もし、複数の10進数を8進数に変換したい場合は、ループを使用することもできます。以下は、ループを使用して複数の10進数を8進数に変換するサンプルコードです。
#include <stdio.h>
void decimalToOctal(int decimal) {
    int octal = 0, i = 1;
    while (decimal != 0) {
        octal += (decimal % 8) * i;
        decimal /= 8;
        i *= 10;
    }
    printf("%dの8進数: %d\n", decimal, octal);
}
int main() {
    int decimal1 = 42;
    int decimal2 = 123;
    int decimal3 = 9876;
    decimalToOctal(decimal1);
    decimalToOctal(decimal2);
    decimalToOctal(decimal3);
    return 0;
}

このコードでは、decimalToOctalという関数を定義し、ループを使用して10進数を8進数に変換しています。decimal1decimal2decimal3という3つの変数を8進数に変換して表示しています。

これらの方法を使用することで、C言語で10進数から8進数への変換を行うことができます。必要に応じて、他の数値や変数に適用することも可能です。