ベストアンサー 教えてください!(C言語関連) 2009/07/22 20:45 2進数(nビット)から10進数へ変換するプログラムを作成したいと考えています。入力(2進数)は固定ビットでなく可変ビットにしたいです。 開発言語はCです。 どのようにすればよいでしょうか? みんなの回答 (5) 専門家の回答 質問者が選んだベストアンサー ベストアンサー jacta ベストアンサー率26% (845/3158) 2009/07/23 01:08 回答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; } 入力は可変ビットですが、上限は決まっています。 なお、エラーチェックは省略しています。 広告を見て全文表示する ログインすると、全ての回答が全文表示されます。 通報する ありがとう 0 その他の回答 (4) Tacosan ベストアンサー率23% (3656/15482) 2009/07/24 17:24 回答No.5 「2進数は,int型で宣言されます。」とはどういう意味でしょうか? もっと具体的に (可能なら例も使って) 「このように表されているものをこのようなものに変換したい」などと書いてもらえませんか? 広告を見て全文表示する ログインすると、全ての回答が全文表示されます。 通報する ありがとう 0 Tacosan ベストアンサー率23% (3656/15482) 2009/07/23 00:40 回答No.3 確認したいんですが, 入力の「2進数 (nビット)」はどのような形で表されているのでしょうか? 質問者 補足 2009/07/23 12:59 2進数は,int型で宣言されます。 広告を見て全文表示する ログインすると、全ての回答が全文表示されます。 通報する ありがとう 0 asuncion ベストアンサー率33% (2127/6290) 2009/07/22 21:47 回答No.2 入力が0か1かで固定であれば、次の方法で答えが求まります。 入力の桁数は無制限です。 ・答えを0で初期化する ・入力(0または1)を受け取る(※1) ・その時点の答えに2を掛けて、受け取った入力値(0または1)を加える(※2) ・入力がある間、※1~※2を繰り返す 広告を見て全文表示する ログインすると、全ての回答が全文表示されます。 通報する ありがとう 0 kmetu ベストアンサー率41% (562/1346) 2009/07/22 20:54 回答No.1 参考までに http://homepage3.nifty.com/teranet/DToB/c.html http://www.yukun.info/blog/2008/01/decimal-to-binary.html "c言語 2進数から10進数"で検索したら色々でてきます 広告を見て全文表示する ログインすると、全ての回答が全文表示されます。 通報する ありがとう 0 カテゴリ [技術者向] コンピュータープログラミング・開発C・C++・C# 関連するQ&A C言語にて。 C言語にて。 ある10進数の数を文字コードを利用して 32進数にするプログラムを作成さる場合 どのようにすればいいでしょうか? C言語の授業で C言語の授業で -------------------- 3以上の整数を入力してください:10 素数は以下の数です: 7 5 3 2 素数は4個ありました -------------------- という感じの、入力した数以下の素数を表示するプログラムをwhile文を用いて作成するように言われたんですが・・・。 まず、while文と素数を表示するプログラムがよくわからないので、もう何をすればいいのか・・・。 どうか、ご教授お願いします。 C言語プログラミング 頼る人がいないので助けて下さい。すべてforを用いて下さい。 (1)入力された数だけ*が表示されるプログラムを用いて作成してください。 (2)4つの数が入力されるとその平均を求めるプログラムを作成してください。 (3)数列an = n^2に関して入力された項数までの和を求めるプログラムを作成してください。 ネットワークエンジニアとは?技術職の未来を考える OKWAVE コラム C言語 C言語初心者です。 整数を入力しその数が偶数ならプログラムを終了する。奇数ならそれが3の倍数か3の倍数でないかを表示する。入力した数が奇数ならこの操作を何回も繰り返すプログラムを作りたいです。 このプログラムのソースを教えてください。 c言語の初心者です c言語の初心者です 2進数を入力して10進数を表示するプログラムを作りたいのですが まったくできません それなので2進数の入力のヒントだけでも教えてもらえないでしょうか? C言語プログラム C言語プログラム ある数を入力して、入力された数を一辺とする図形を描くプログラムを作りたいんです。 分かりやすくすると、 入力された数が5だった時、画面には ***** ***** ***** ***** ***** ↑こう出力させたいんです。 四角だけじゃなくて、 * ** *** **** ***** ↑こういう三角とか、逆三角とか、 * * ** *** *** ***** ** *** * * こんなかんじでいろんな形を描けるようにしたいんです。 C言語で、for文の二重ループを使うようにとのことなんですが、 どうすればいいでしょうか。 こういうのってズルですけど、何かヒントでも貰えればと思っています...。 c言語です。 c言語です。 現在電話番号入力のプログラムを書いているのですが、うまくいきません。 決まりは18文字以下で、入力できる値が数字1から9と'(',')','-'のみです。 私はあと少しなんですが、うまくプログラムを組めませんでした。 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言語 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言語プログラミングで困っています。助けて下さい。 課題1-1: 実数 a と実数 b を入力すると、一次方程式ax + b = 0 の解を求めるプログラムを作る 課題1-2: 1-1 で作成したプログラムについて、さらにa として1が入力されたとき、方程式の表示 部分が1x + 3 = 0ではなくx + 3 = 0となるようにせよ 課題1-3: 1-2 で作成したプログラムについて、さらにb として0 や負の数が入力されたとき、方程式 の表示部分が2x = 0 や2x – 3 = 0となるようにせよ 課題1-4: 1-3 で作ったプログラムについて、さらにa の値として0が入力された場合、「解けません」 と表示するようにせよ 課題1-5: 係数 a, b, c を入力すると、 2次方程式ax2 + bx + c =0の解を表示するプログラムを作 れ ※ 1-2 ~ 1-4 のような機能を盛り込む ※ a が0の場合には、先に作った1次方程式のプログラムが動く という問題です。最終的にこれらを一つのプログラムにしてください。判別式や解の公式、ルート√などを使ってよろしくお願いします。C言語でお願いします C言語 C言語 10進数n(0<n<256)を2進に変換させろ 配列を使うな do-whileでnを入力させることはできましたが、そこから先がわかりません。 for文を使えと言われたのですが…… AIは使う人の年齢や市場にも影響する?人工知能の可能性 OKWAVE コラム c言語について 今ちょうど期末テストの時期でプログラミングのテストの過去問を解いています。 答えが配られなかったので疑問の部分を質問させてください。 問題文は 10進の整数を16,8,2進数にへんかんするのは、printfのフォーマットでできるが、これを使わないとする。10進数から変換する際には、ビット演算子(<<,&等)を用いるとできる。ビット演算子を用いて、プログラムの変換処理の部分を書け。 という問題でどのようにすればいいのかわかりません。わかる方、おしえてください。 自分は16進数が4ビットだから4ビットシフトさせればいいのかと思いプログラムを作ってみたのですが、それだけではダメのようでした。 C言語のscanf文について C++言語の勉強中で、ビット演算子のところで質問です。 動作は、キーボードから16進データを入力して、そのデータの3,4ビット目を0にした時のデータを算出するというものです。 ここでProgram中の scanf 文にてエラーが出てしまいます。 ①%X(16進数)の型がintに対して、ope変数がcharとなっている。 ⇒ここの整合を取るためにはどういう方法がありますでしょうか? 以下がProgramです。 /*************************************************************/ /* プログラム:ビット演算子 */ /* 動作内容 :ビット演算子によりビット操作する */ /* 入力データの3,4ビット目を0にした値を算出する */ /**************************************************************/ #include<stdio.h> int main(void) { unsigned char ope; unsigned char ans; printf(" Hex-Data : "); scanf("%X", &ope); printf(" ope : 0x%02X\n", ope); ans = ope & 0xe7; /* 3,4ビット目:0 */ printf(" ope & 0xe7 = 0x%02x\n", ans); getchar(); getchar(); return(0); } 至急で、C言語の問題で解答解説お願いします。 1実数を3つ(a,b,c)を読み込み3辺とする三角形ができるか判定(d(d-a)(d-b)(d-c)>0のとき三角形となる)しできなければ、三角形ではありません!というメッセージを表示し、できる場合は以下のヘロンの公式を用いて三角形の面積を求めるプログラムをC言語で答えてください。d=(a+b+c)/2 s=√{d(d-a)(d-b)(d-c) 2maxの整数値(≧1)をキーボードから入力し、その値に対応した図形を出力するプログラムをC言語で答えてください。 例 max1 max2 max3 * ** *** * ** *** * ** *** ** *** *** 3整数nをキーボード入力しnの値に応じて以下の図形を表示するプログラムをc言語で答えてください。 n=3 n=4 n=5 3 4 5 45 56 67 678 789 890 0123 1234 56789 4整数n(≧0)を入力し歯科の計算を実行するC言語プログラムを答えてください。2つの自然数nとmを読み込みn個の中からm個を取り出すときの組み合わせの数を計算せよ。ただし、n!を計算する関数long fact (int n)を定義し必ずそれを用いること。 5 1つのscanfで2つの10進数を入力し8進数と16進数で表示するプログラムをC言語で答えてください。 6 実数aを入力し少数第1位で四捨五入する関数g(a)をマクロ定義で入力した値の少数第1位を四捨五入して出力するプログラムをC言語で答えてください。 7 4つの実数w,x,y,zを読み込みその最大値を出力するプログラムをC言語で答えてください。ただし、2つの実数の大きいほうを求める関数 double my may (double x,double y)を定義し、その関数を用い、if文を用いないでc言語で答えてください。 [C言語→アセンブリ言語]はどうするのですか? C言語でプログラムを作って、それをアセンブリ言語に変換したいのですが、どうしたらよいでしょうか? C言語の問題 C言語の問題ができません。 誰か教えてください。 「複数の人の平均年齢を求めるプログラムを作成せよ。最後の人の年齢を入力した後には、負の数を入力するものと約束する。for構文を用いて各人の年齢の読み込みと加算を順次行ない、負の数が入力されたらこれを判定条件としてforループを抜け平均年齢を求めるプログラムにせよ。」 このような問題です。なるべく早くどなたか回答してもらえるととても助かります。 c言語 c言語の問題なんですが 氏名を姓と名に半角空けて1列に入力し、姓と名の文字数を数えるプログラムを書いてみましたがうまく走りません原因がわからないので誰か教えてください。ちなみに、書いたプログラムは、 #include <stdio.h> void mojisu(char z[] ); int main() { char z[30]; printf("氏名を英語で入力\n"); scanf("%s\n",&z); mojisu(z); } void mojisu(char z[] ) { int sei,mei, b; for(b =0,sei=0; z[b]==' '; b++); { sei+=1; } printf("姓の文字数は%d\n",sei); for(b =sei+1,mei=0 ; z[b]=='\0'; b++); { mei+=1; } printf("名の文字数は%d\n", mei); } C言語のプログラミングについてです>< 今C言語のプログラミングの勉強をしているのですが、わからないプログラムがでてきたので教えてくださる方がいらっしゃれば、ご教授願いたいです。 数当てゲームの作成 1~9(0は除く)のなかから4つの異なる数字をランダムで選択し、4桁の数をつくる。ユーザは4つの数字の並びを入力して、作られた数を当てる。 ユーザの入力した数と作られた数を比較して、同じ数字が同じ桁にある場合は"Hit"というヒントを与える。また、同じ数字が異なる桁にある場合は"Blow"というヒントを与える。すなわち、作られた数が5849で、ユーザが4829という数値を入力した場合、"2 Hit 1 Blow"というヒントが表示されるようにする。 ユーザは10回まで、入力するチャンスが与えられる。 といった感じのプログラミングなんですが、C言語初心者である自分にはまったくわかりません; ; どなたかわかる方がいらっしゃれば、助けていただけないでしょうか?よろしくお願いします! c言語について C言語のループのところで詰まってしまってわからないので2問ほど教えていただきたいです。 (1)nから1までの自然数を以下のように対角的に印字せよ。 Enter n:20 20 -19 --18 ---17 ・ ・ ・ ・ -----------------3 ------------------2 -------------------1 (2)入力した数に応じたピラミッドを作れ。 (i)奇数の場合 Enter:5 1 12 123 1234 12345 (ii)偶数の場合 Enter:8 1 22 333 4444 55555 666666 7777777 88888888 という問題なんですがわかるかたお願いします。 注目のQ&A 「You」や「I」が入った曲といえば? Part2 結婚について考えていない大学生の彼氏について 関東の方に聞きたいです 大阪万博について 駅の清涼飲料水自販機 不倫の慰謝料の請求について 新型コロナウイルスがもたらした功績について教えて 旧姓を使う理由。 回復メディアの保存方法 好きな人を諦める方法 小諸市(長野県)在住でスキーやスノボをする方の用具 カテゴリ [技術者向] コンピューター プログラミング・開発 Microsoft ASPC・C++・C#CGIJavaJavaScriptPerlPHPVisual BasicHTMLXMLCSSFlashAJAXRubySwiftPythonパフォーマンス・チューニングオープンソース開発SEOスマートフォンアプリ開発その他(プログラミング・開発) カテゴリ一覧を見る OKWAVE コラム 突然のトラブル?プリンター・メール・LINE編 携帯料金を賢く見直す!格安SIMと端末選びのポイントは? 友達って必要?友情って何だろう 大震災時の現実とは?私たちができる備え 「結婚相談所は恥ずかしい」は時代遅れ!負け組の誤解と出会いの掴み方 あなたにピッタリな商品が見つかる! OKWAVE セレクト コスメ化粧品 化粧水・クレンジングなど 健康食品・サプリ コンブチャなど バス用品 入浴剤・アミノ酸シャンプーなど スマホアプリ マッチングアプリなど ヘアケア 白髪染めヘアカラーなど インターネット回線 プロバイダ、光回線など
補足
2進数は,int型で宣言されます。