世の中には10種類の人間がいる
それは、2進数を理解できる人間と、理解できない人間だ。
10は「じゅう」じゃないです。「いちぜろ」です。
FE勉強の暇つぶし。
char型配列に入った2進数を10進数に変換する。
小数点も使えます。エラー処理は甘いけど。
#include <stdio.h> double BinToDec(char *num); int main(void) { char num[50]; printf("binary number -> "); gets(num); printf("(%s)2 = (%lf)10", num, BinToDec(num)); return 0; } double BinToDec(char *num) { double result = 0; int small_fig = -1; int i; for (i = 0;num[i] != '\0' && num[i] != '\n';i++) { if (num[i] == '.') { small_fig++; } else { result *= 2; result += num[i] - '0'; if (small_fig != -1) small_fig++; } } for (i = 0;i < small_fig;i++) result /= 2; return result; } 実行結果 binary number -> 1101.1011 (1101.1011)2 = (13.687500)10