• 締切済み

初心者です。for文、if文を使って10進数を2進数に変換したいです。

harimitiの回答

  • harimiti
  • ベストアンサー率31% (7/22)
回答No.2

サンプルで考えて見ましょう。 ここに、14という数字があります。 2進法では 1110(2)ですね。       8+4+2+0=14   basicだと、¥で商、modがあまりです。 14を2で割る(¥)と、7 >0 あまり(mod) 1 7 を2で割ると    3 >0 あまり    1 3 を2で割ると    1 >0 あまり    1 1 を2で割ると    0 if文で終了 あまり 0 なので、あまりをすべて反対にすれば、1110が求まります。 ちなみに、出たあまりを次のルーチンで10倍すれば、簡単に 1110を作れると思います。 これを、プログラミングしてみてください。 プログラムを考える上で、簡単なサンプルを手でまわしてみると難しそうなものも解けることがあります。

関連するQ&A

  • if文とfor文で・・・

    キーボードから今月の給料を入力する。       実行例        input 197868            10000---------> 19             5000---------> 1             1000---------> 2             500---------> 1             100---------> 3              50---------> 1              10---------> 1              5---------> 1              1---------> 3       以上のように表示させる。 を配列を使わずにif文とfor文だけでプログラムするんですが、for文をどこで使用すればいいのかわかりません・・・ 環境はunixでemacsを使用しています。

  • if文で困っています。

    define A 5 void main(void) int i; scanf("%d", &i); if (i <= A){ このような形をつくったのですが、if文のところで質問があります。 「数字をいくつか入力し、その入力したデータ数が5つより少ないときに・・・」というようなプログラムにしたいのですが、この場合、「入力した数値が5.0以下であるときに・・・」というプログラムになっているのではないかと、困っています。どちらが正しいのでしょうか?

  • IF文 教えてください (BASIC)

    1, 2, 3, 4 のいずれかの値を取る3つの乱数 x, y, z を同じ行に表示させ,さらに x=y=z=1 のときは「大当」, x=y=z≠1 のときは「当」, x, y, z のうち2つだけが一致したときは「惜」, 上記以外の場合は「残念」 と表示するプログラム ELSEIF文を用い,IF文およびEND IF文は1回で済ませる。 乱数x,y,zを表示することと IF文が分かりません。 RANDOMIZE FOR n=1 TO 3       PRINT INT (RND*4)+1; NEXT n

  • for文&if文を使った問題について教えてください。

    参考書の練習問題を解いていて、応用力がないのか理解できない ので、分かる方教えていただけませんか? 問題: キーボードから整数を入力させ、その数が素数であるかどうかを 判断するコードを記述してください。 解答: import java.io.*; class SampleP5 { public static void main(String[] args) throws IOException { System.out.println("2以上の整数を入力してください。"); BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String str = br.readLine(); int num = Integer.parseInt(str); for(int i=2; i<=num; i++){ if(i = = num){ System.out.println(num + "は素数です。"); } else if(num % i = = 0){ System.out.println(num + "は素数ではありません。"); break; } } } } 例えば"7"を入力すると「7は素数です」と出力されるようなんですが、 『i = 7』だとして、『 if(i = = num)』の条件って当てはまるん ですか?for文でiの初期値が2だから、『2 = = 7』で当てはまらない と思うんですが・・・ 考え方が間違っているんですかね? ※ちなみに(= =)のところ、実際はスペース空いてません。  ここの画面での表示上くっついて1本の線になってしまうので、  スペースを空けて入力したまでです。

    • ベストアンサー
    • Java
  • java for文プログラムについて

    java for文プログラムについて javaのfor文のプログラムにて 2つの数値をキーボード入力し入力値を+入力値とやっていきたいプログラムを組みたいのですがどんなプログラミングを行えばいいのでしょうか。 例えば入力が15 もうひとつの入力が20だとすれば15+16+17+18+19+20=105という計算を行いたいです プログラミング環境はeclipseです 分かる方教えてください。

  • VB6のIF文について教えてください

    VB6でプログラムについて、みなさんアドバイスをいただけませんでしょうか? 現在、下記のような動作をするプログラムを作っていていますがうまくいきません。 テキストボックスに1~100までの数値を400個入力します。 ボタンを押してこのテキストボックスヘ数値を入力したとき、入力した数値が10未満の 場合はメッセージボックスで「NG」と表示。 それ以外は、メッセージボックスで「OK」と表示プログラムを作っています。 ※これは、テキストボックスに数値を入力して、改行を押した際に、毎回OK・NG判定を  して表示する 今下記のように作っているのですが、苦戦しているのは、数値を入力して改行したときに 毎回メッセージボックスが出ず、エラーが出てしまいます。 下記プログラム文をどのように変更すれば、数値を入力して改行したときに毎回上記のよ うな判定できるようになるかご教示頂けませんでしょうか? みなさん教えてください。よろしくお願いします。 Private Sub Command1_Click() Dim moji As String moji = txtInputData.Text     If moji > 10 Then   Msgbox "NG"   Else  Msgbox "OK" End If End Sub

  • if文の中にfor文なのか、for文の中にif文なのか

    for文の中に分岐を作って計算するのと、if文を先に書いてからfor文にするのとではどちらが一般的ですか? for ( i = 0; i < n; i++) { if ( a > b ) { y = i; } else { y = i * 2; } printf( "%d", y ); } とするか、 if ( a > b ) { for ( i = 0; i < n; i++) { y = i; } } else { for ( i = 0; i < n; i++) { y = i * 2; } } printf( "%d", y ); とするかという事です。 ちなみにプログラムは適当ですのでちょっとしたミスはご勘弁ください。 個人的には後者の方が分岐が少ない分負担は減ると思うのですが、前者の方がすっきりとしているのでこちらを使いたいのです。 もちろん、微々たる差なので好きな方を使えという意見もあると思いますが、皆さんはどちらを使いますか?

  • for文,if文,c++

    c++でやっていますが、for文,if文,showmessage()を利用して作りたいのですが、 どこからはじめればよいのかよくわかりませんので教えて下さい。 フォームにラベル1つ、テキストボックス1つ、ボタン1つを作ります。 ラベルには「北海道の県庁所在地はどこですか?」と表示されます。 テキストボックスに入力して、正解であれば「正解です」と表示され、次の県に進み ます。 不正解であれば「不正解です」と表示して、同じ県を繰り返します。 47都道府県がすべて終わったらフォームを閉じます。

  • 8桁の2進数を10進数に変換する方法を教えてください。

    キーボードから2進数を入力した値を10進数に変換し、変換結果を出力する方法が解りません。作成するにあたり仕様があり、私一人では解決できないので相談させていただきました。 <仕様は以下の通りです> (1)このプログラム(8桁の2進数を10進数に変換)をする際は、最後に出力する時(printf)以外は関数を使ってはいけません。 (2)キーボードから2進数を入力させる。 (3)空白(ブランク)が入力されても変換可能にする。 (4)入力された2進数は8桁にし、8桁以上の場合はエラーを出す。 (5)2進数の「0」と「1」以外の文字が入力された場合はエラーを出す。 (6)バイナリ変換をし、変換結果を出力する。 以上になります。 まだ、C言語を勉強を習い始めの初心者です。どうか、ご回答のほど宜しくお願いします。

  • [Perl]長すぎるif文を簡単にしたい

    初めまして、説明がうまく伝わらないかもしれませんがよろしくお願いいたします。 同じ値がN回続いた場合、その値をすべて出力するPerlのプログラムを作成中なのですが とても長くなってしまい、スッキリとしたプログラムにしたいのです。 どうかお知恵を貸していただけないでしょうか。 現在、&&を使用してこのようになっています。 例:Aの値が5回連続して同じ値だった場合 for($i=1; $i<=1000; $i++){  if(@A[$i]==@A[$i+1] && @A[$i+1]==@A[$i+2] && @A[$i+2]==@A[$i+3] && @A[$i+3]==@A[$i+4]){   for($j=0; $j<=9; $j++){    printf "@A[$i+$j], @B[$i+$j], @C[$i+$j]";   }  } } データはすべて数値で、スペース区切りのテキストデータです。 # ヘッダー 0.00 2.0 11.5 0.01 6.3 17.2 0.01 2.1 14.2 0.01 1.2 14.3 0.01 2.1 14.3 0.01 3.7 14.3 0.01 3.7 14.3 0.01 4.1 14.3 0.06 4.1 14.3 0.01 4.1 14.9 0.01 4.1 14.9 0.03 4.1 14.8 ・・・ 連続した値が50回、100回だった場合になるとif文の条件式が長くなってしまい その都度変更がとても大変になってしまい困っています。 どうか、よろしくお願いいたします。

    • ベストアンサー
    • Perl