- ベストアンサー
教えてください!(C言語関連)
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
とりあえず、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)
「2進数は,int型で宣言されます。」とはどういう意味でしょうか? もっと具体的に (可能なら例も使って) 「このように表されているものをこのようなものに変換したい」などと書いてもらえませんか?
- Tacosan
- ベストアンサー率23% (3656/15482)
確認したいんですが, 入力の「2進数 (nビット)」はどのような形で表されているのでしょうか?
- asuncion
- ベストアンサー率33% (2126/6286)
入力が0か1かで固定であれば、次の方法で答えが求まります。 入力の桁数は無制限です。 ・答えを0で初期化する ・入力(0または1)を受け取る(※1) ・その時点の答えに2を掛けて、受け取った入力値(0または1)を加える(※2) ・入力がある間、※1~※2を繰り返す
- kmetu
- ベストアンサー率41% (562/1346)
参考までに http://homepage3.nifty.com/teranet/DToB/c.html http://www.yukun.info/blog/2008/01/decimal-to-binary.html "c言語 2進数から10進数"で検索したら色々でてきます
関連するQ&A
- C言語プログラミング
頼る人がいないので助けて下さい。すべてforを用いて下さい。 (1)入力された数だけ*が表示されるプログラムを用いて作成してください。 (2)4つの数が入力されるとその平均を求めるプログラムを作成してください。 (3)数列an = n^2に関して入力された項数までの和を求めるプログラムを作成してください。
- ベストアンサー
- C・C++・C#
- C言語プログラム
C言語プログラム ある数を入力して、入力された数を一辺とする図形を描くプログラムを作りたいんです。 分かりやすくすると、 入力された数が5だった時、画面には ***** ***** ***** ***** ***** ↑こう出力させたいんです。 四角だけじゃなくて、 * ** *** **** ***** ↑こういう三角とか、逆三角とか、 * * ** *** *** ***** ** *** * * こんなかんじでいろんな形を描けるようにしたいんです。 C言語で、for文の二重ループを使うようにとのことなんですが、 どうすればいいでしょうか。 こういうのってズルですけど、何かヒントでも貰えればと思っています...。
- ベストアンサー
- その他(プログラミング・開発)
- C言語の問題
以下はC言語の問題です。お教えください。 1000以下の素数を求めるプログラム prog.c を作成せよ。各素数を整数4桁で出力し、15個の素数を出力した時点で改行処理 を行うこと。作成したプログラムを提出せよ。 です。 僕の考えでは、 #include <stdio.h> #include <math.h> main(){ int i; int j; int ix; int k; printf("正の整数を入力して下さい: "); scanf("%d",&i); ix=(int)(sqrt((double)i)); k=0; for(j=2;j<=ix;j++) { if(i%j==0) { k=1; } } if(k==0) { printf("%d は素数です\n",i); } else { printf("%d は素数ではありません\n",i); } となると思うのですが。どうやら違うようです。全然わからないので、正しい答えを教えてください。
- ベストアンサー
- その他(プログラミング・開発)
- C言語のビットシフトの質問
C言語の右ビットシフトで、以下のプログラムの結果について、納得できずにいます。 dを右にシフトすると、上位ビットには0が入るのではないでしょうか? よろしくお願いします。 プログラム unsigned char d='0'; printf("%c\n", d); printf("%c\n", d>>5); 結果 0 『
- ベストアンサー
- C・C++・C#
- C言語 n!のプログラミング
C言語で、入力されたnについてのn!を求めるプログラムを書きました。 #include<stdio.h> int main() { int total=1,i,n; scanf("%d",&n); for(i=1;i<=n;i++){ total*=i; } printf("%d",total); } しかし、このままだとn=13くらいからオーバーフローしてしまって、n=100やn=10000といった大きな数の場合のn!が求められませんよね? 万進法という方法を使って、10000未満の数を配列の要素に割り当てる(説明が正しいかわかりませんが…)と、うまくいくと聞きました。 万進法とはどのようなものでしょうか?やり方を教えてください。 また、C言語での、このプログラムの一例もできれば教えてください。 ですが、今一番知りたいのはどういう手順でプログラムを書けばいいのかということですので、そちらの方を詳しく教えてください。
- ベストアンサー
- C・C++・C#
補足
2進数は,int型で宣言されます。