• ベストアンサー

教えてください!(C言語関連)

2進数(nビット)から10進数へ変換するプログラムを作成したいと考えています。入力(2進数)は固定ビットでなく可変ビットにしたいです。 開発言語はCです。 どのようにすればよいでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • jacta
  • ベストアンサー率26% (845/3158)
回答No.4

とりあえず、uintmax_t型で表現できる範囲(少なくとも64ビット)であれば... #include <stdio.h> #include <inttypes.h> #include <limits.h> int main(void) {  char s[sizeof(uintmax_t) * CHAR_BIT + 1];  fgets(s, sizeof(s), stdin);  printf("%" PRIuMAX "\n", strtoumax(s, NULL, 2));  return 0; } 入力は可変ビットですが、上限は決まっています。 なお、エラーチェックは省略しています。

すると、全ての回答が全文表示されます。

その他の回答 (4)

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.5

「2進数は,int型で宣言されます。」とはどういう意味でしょうか? もっと具体的に (可能なら例も使って) 「このように表されているものをこのようなものに変換したい」などと書いてもらえませんか?

すると、全ての回答が全文表示されます。
  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.3

確認したいんですが, 入力の「2進数 (nビット)」はどのような形で表されているのでしょうか?

02031988
質問者

補足

2進数は,int型で宣言されます。

すると、全ての回答が全文表示されます。
  • asuncion
  • ベストアンサー率33% (2127/6290)
回答No.2

入力が0か1かで固定であれば、次の方法で答えが求まります。 入力の桁数は無制限です。 ・答えを0で初期化する ・入力(0または1)を受け取る(※1) ・その時点の答えに2を掛けて、受け取った入力値(0または1)を加える(※2) ・入力がある間、※1~※2を繰り返す

すると、全ての回答が全文表示されます。
  • kmetu
  • ベストアンサー率41% (562/1346)
回答No.1

参考までに http://homepage3.nifty.com/teranet/DToB/c.html http://www.yukun.info/blog/2008/01/decimal-to-binary.html "c言語 2進数から10進数"で検索したら色々でてきます

すると、全ての回答が全文表示されます。

関連するQ&A