• 締切済み

2進数から10進数へ変換プログラム

yaa6の回答

  • yaa6
  • ベストアンサー率22% (2/9)
回答No.2

2進数をあらわす文字列(0,1の列)をStrBとします。 答えとなる10進数をintDとし、0で初期化します。 StrBの長さを測り、lbとします。 文字列を左から(たいていのプログラミング言語は処理が右からなので)一文字ずつ調べ、n番目(n = 1,2,3…)の文字のとき その文字が1なら intD = intD + 2の(lb - n)乗 (何乗という計算のない言語ならループを回して2を(lb - n)回掛けます) その文字が0なら、何もしない すべての文字について処理をした後のintDが答えの10進数です。

関連するQ&A

  • 10進数を12進数に変換する方法

    10進数を12進数に変換する方法を教えてください。 計算機などは使わず手計算で変換する方法です。

  • 2進数から10進数へ変換

    C言語で、2進数から10進数に変換するプログラムを作ろうと思っています。 手計算で行う場合は2進数の 下1桁目×1 下2桁目×2 下3桁目×4。。。と計算しています。 下○桁目を取り出す方法を考えているのですが、思いつきません。 3桁の2進数を変換するプログラム(とりあえず101を変換することを考えて・・・)を書いてみたのですが、101を考えすぎたためか上手くいきませんでした。 最終的には10進数でintの範囲内程度の2進数の変換ができるプログラムを書きたいと思っています。 アドバイスをお願いします。 ちなみに、考えてみたプログラムは以下の通りです。 101以外で上手く変換できませんね・・・ ここに貼り付けるのが恥ずかしいです。 #include <stdio.h> main() { int x ,i ,z[3]; scanf("%d",&x); z[0]=x/100*4; z[1]=(x/10-10)*2; z[2]=(x-110)*1; printf("%d",z[0]+z[1]+z[2]); return 0; }

  • 2進数から16進数の計算を電卓で行うには?

    2進数から16進数へ変換する際の質問です。 2進数から16進数の計算を、WinXPの電卓(アクセサリ)で行うにはどうしたらいいのでしょうか?できるんでしょうか? また2進数『00030101』のような数値を16進に買えることは、winの電卓でできるのでしょうか? ありえない数値なんでしょうか?イマイチ解からないんですが・・・。 よろしかったら教えてくださいー。

  • 10進の自然数を2進数に変換するプログラム

    10進の自然数を2進数に変換するプログラム(java)を教えてください 整数型の変数aから第bビット目(最初を下位ビットとして第0ビットとする)を取り出すメソッドを作成して、プログラムを組みたいのですが、やり方がいまいちわかりません。 どなたかわかる方よろしくお願いします!

  • 8進数から16進数への変換

    8進数から16進数、また、16進数から8進数に 計算過程でほかの進数に変換することなく直接変換できますか?

  • 基数変換(?)の出来る電卓

    基数変換(?)というか、10進数から2進数や16進数や8進数への変換、またはその逆の計算(変換)ができる電卓ありましたら教えてください。なるべく安いほうがいいです。(中古も可)

  • 2進数を10進数にするプログラム作成について

    10進数から2進数に変換するプログラムはできたのですが2進数から10進数に変換するプログラムが作れません。。 値を入力してください:1111←と入力(例) 10進数では15です。 もう一度実行しますか?(1…yes/2…no) というプログラムを作ろう思っています。 うまく作れずエラーばかり起きてしまいます。 どうか教えて下さい。お願いします。

  • 『2進数→16進数の変換』などの総称は?

    プログラム作成の練習として、  2進数を16進数に変換  16進数を2進数に変換 などができる簡単なプログラムを作成しました。 これらのプログラムを全てまとめて何か日本語の名前をつけたいのですが、何とつけるのが適してるのでしょうか? 今は『進数変換』や『記数法変換』という名前を考えています。 数学に詳しい方や、数学が好きな方、アドバイスをお願いします。

  • Delphi 6 で 2進数→10進数変換

    いつも質問ばかりですみません。現在 Delphi Ver 6.0 Personal 版で プログラムの勉強を始めたのですが 2進数を10進数に変換するために intPower などを用いてプログラムを考えて見ましたが上手く行きませんでした。どねたか[HELP]をお願いします。

  • 10進数を2進数に変換するプログラム

    このアセンブラのプログラムはIN命令によって3桁のレコードに入力された10進数の値を2進数に変換するプログラムです。 INPUT START                      (1) RPUSH                      (2) IN IBUF,ILEN ;レコードを入力       (3)     LD GR0,ILEN                (4) JMI FIN2 ;ファイルの終わり      (5) LD GR1,=0   ;けた数のカウンタ      (6) LD GR4,=0   ;数値の初期化        (7) LOOP2 LD GR3,IBUF,GR1               (8) AND GR3,=#000F ;数字を数値に変換      (9) LD GR5,GR4;ここから↓4つの命令はGR4を10倍する (10) SLL GR5,3;                   (11) SLL GR4,1;                   (12) ADDA GR4,GR5;                  (13) ADDA GR4,GR3                   (14) ADDA GR1,=1                   (15) CPA GR1,GR0                   (16) JMI LOOP2                    (17) LD GR0,GR4                   (18) FIN2 RPOP                         (19) RET ILEN DS 1 IBUF DS 256 END (8)のLOOP2 LD GR3,IBUF,GR1の命令なのですが、「これはIBUFとGR1のアドレスをたしてGR3にその内容を格納する。」という意味であり、その後(14)で10倍されたGR4にたしています。 質問としては、この2進数に変換するプログラムでGR3とGR4の役割を教えていただきたいです。 GR1はレコードの桁数に使われている領域だとわかります。 個人的な解釈としては、GR4はレコードに入力する10進数の数値なのですが、GR4をなぜ10倍すると2進数に変換されるのかなどやGR3の意味がわからないために全く理解できません。 よろしくお願いします。