- ループを使用した方法:
#include <stdio.h>
#include <math.h>
int binaryToDecimal(int binary) {
int decimal = 0, i = 0;
while (binary != 0) {
int remainder = binary % 10;
binary /= 10;
decimal += remainder * pow(2, i);
++i;
}
return decimal;
}
int main() {
int binaryNumber = 101010; // 例として、バイナリ数を設定します
int decimalNumber = binaryToDecimal(binaryNumber);
printf("10進数: %d\n", decimalNumber);
return 0;
}
- 文字列と標準ライブラリ関数を使用した方法:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <string.h>
int binaryToDecimal(char* binary) {
int decimal = 0, i = 0;
int length = strlen(binary);
for (int j = length - 1; j >= 0; --j) {
if (binary[j] == '1') {
decimal += pow(2, i);
}
++i;
}
return decimal;
}
int main() {
char* binaryNumber = "101010"; // 例として、バイナリ数を設定します
int decimalNumber = binaryToDecimal(binaryNumber);
printf("10進数: %d\n", decimalNumber);
return 0;
}
- ビットシフト演算子を使用した方法:
#include <stdio.h>
int binaryToDecimal(int binary) {
int decimal = 0, base = 1;
while (binary > 0) {
int lastDigit = binary & 1;
decimal += lastDigit * base;
binary >>= 1;
base *= 2;
}
return decimal;
}
int main() {
int binaryNumber = 101010; // 例として、バイナリ数を設定します
int decimalNumber = binaryToDecimal(binaryNumber);
printf("10進数: %d\n", decimalNumber);
return 0;
}
これらの方法を使用すると、C言語でバイナリ数を10進数に変換することができます。ご参考までにお使いください。