C言語のバイナリを10進数に変換する方法
数値文字列を整数に変換する atoi 関数は C 言語で使用できます。ここに例を示します:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int binaryToDecimal(char *binary) {
int decimal = 0;
// 逐位遍历二进制字符串
for (int i = 0; i < strlen(binary); i++) {
// 将字符转换为数字
int bit = binary[i] - '0';
// 计算对应位的十进制值
decimal = decimal * 2 + bit;
}
return decimal;
}
int main() {
char binary[32];
printf("请输入一个二进制数:");
scanf("%s", binary);
int decimal = binaryToDecimal(binary);
printf("对应的十进制数为:%d\n", decimal);
return 0;
}
動作は次のとおりです。バイナリから10進数に変換する binaryToDecimal 関数は、バイナリ数を表す文字列を引数として取り、10進数の整数に変換します。まず、10進数の変数 decimal を0に初期化し、それからバイナリ文字列をビットごとに走査します。各ビットに対して、文字を数値に変換し、乗算と加算の演算を用いてそのビットの10進値を計算します。最後に、10進数の整数を返します。
最初に scanf 関数でユーザーが入力した 2 進数の文字列を取得し、それを binaryToDecimal 関数で 10 進数に変換します。そして最後に、変換された 10 進数の整数をプリントします。
上記の例では入力エラーを考慮していない(例:ユーザーが入力した文字列が正しい2進数でない場合など)ことに注意してください。実際には、入力の検証とエラー処理の追加が必要になる可能性があります。