C言語でのバイナリ数から10進数への変換方法


  1. ループを使用した方法:
#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;
}
  1. 文字列と標準ライブラリ関数を使用した方法:
#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;
}
  1. ビットシフト演算子を使用した方法:
#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進数に変換することができます。ご参考までにお使いください。