方法1: ループを使用した変換 この方法では、10進数を2で割りながらビットを取得し、逆順に並べることで2進数を生成します。
#include <stdio.h>
void decimalToBinary(int decimal) {
int binary[32]; // 32ビットの2進数を格納する配列
int i = 0;
while (decimal > 0) {
binary[i] = decimal % 2;
decimal = decimal / 2;
i++;
}
printf("2進数: ");
for (int j = i - 1; j >= 0; j--) {
printf("%d", binary[j]);
}
}
int main() {
int decimal;
printf("10進数を入力してください: ");
scanf("%d", &decimal);
decimalToBinary(decimal);
return 0;
}
方法2: ビットシフト演算を使用した変換 この方法では、ビットシフト演算子を使用して10進数を2進数に変換します。
#include <stdio.h>
void decimalToBinary(int decimal) {
int size = sizeof(decimal) * 8; // サイズを取得
for (int i = size - 1; i >= 0; i--) {
int bit = (decimal >> i) & 1;
printf("%d", bit);
}
}
int main() {
int decimal;
printf("10進数を入力してください: ");
scanf("%d", &decimal);
decimalToBinary(decimal);
return 0;
}
方法3: ビットマスクを使用した変換 この方法では、ビットマスクを使用して10進数を2進数に変換します。
#include <stdio.h>
void decimalToBinary(int decimal) {
int size = sizeof(decimal) * 8; // サイズを取得
unsigned int mask = 1 << (size - 1); // ビットマスクを作成
for (int i = 0; i < size; i++) {
int bit = (decimal & mask) ? 1 : 0;
printf("%d", bit);
mask >>= 1; // マスクを右シフト
}
}
int main() {
int decimal;
printf("10進数を入力してください: ");
scanf("%d", &decimal);
decimalToBinary(decimal);
return 0;
}
これらの方法を使用することで、C言語で10進数から2進数への変換を行うことができます。ご参考までに、それぞれの方法について説明とコード例を提供しました。