• ベストアンサー

2進数を10進数にする方法

su-zu-kiの回答

  • ベストアンサー
  • su-zu-ki
  • ベストアンサー率18% (5/27)
回答No.2

こんにちは、su-zy-kiともうします。 2進を10進に、またその逆をおこなうプログラムを作りたいのでしょうか? それとも、紙と鉛筆による方法が知りたいのでしょうか? 私は、プログラムに関する知識があまりないのでプログラムに関しては答えられませんが自分で計算する方法でよろしければわかります。 まず2進から10進ですが、たとえば(11010110)の場合ですと        128 64 32 16 8  4  2  1 左から順に(1  1  0  1  0  1  1  0) という感じで上に1、2、4・・・・数字を振っていきます。 次に2進で1の所の数字を足していきます。 2+4+16+64+128 これを計算すると214になります。 これが2進数の(11010110)を10進数で表した数字です。 10進を2進にする方法ですが、214を2進数にするときは、 214を2で割ります。 割り切れるので2進数の一番左は0になります 214を2で割った数107を2で割ると割り切れないので2進の次の数字は1になります。こんな感じで計算します                 214 ÷ 2 = 107 ・・・ 0 107 ÷ 2 = 53  ・・・ 1 53  ÷ 2 = 26  ・・・ 1 26  ÷ 2 = 13  ・・・ 0 13  ÷ 2 = 6   ・・・ 1 6   ÷ 2 = 3   ・・・ 0 3   ÷ 2 = 1   ・・・ 1 1   ÷ 2 = 0   ・・・ 1 割り算のあまりを並べると(11010110)になりこれが214を二進で表した数字になります。  

yosiyosi
質問者

お礼

ありがとうございました。

関連するQ&A

  • n進数の値を10進数の値に変換するには?

    こんにちは。 C言語において、n進数の値を10進数の値に変換する方法を考えています。 例えば、2進数の101を、10進数で表すと5になります。 これを関数化し、 n_to_m(int x, unsigned n); といったプロトタイプで、 渡された整数x(n進数)を、10進数での値に変換する関数を作りたいのです。 逆に、10進数の値を、n進数の値に変換する関数も一緒に作りたいと考えています。 何かいい方法を思いついた方がいらっしゃれば、是非アドバイスを頂きたいと思います。 では、よろしくお願い致します。

  • 10進数の変換方法

    C言語にてゾーン10進数→パック進数、パック10進数→ゾーン10進数にする 簡単な方法ありませんか?

  • 場合の数

    整数αは、1から9999の値で、そのなかの1桁、2桁、3桁の数は000、00、0をつけて4桁とみなす。このαの一の位と千の位、百の位と十の位を入れ替えた数をα’とすると、整数(α-α’)がとり得る値は何通り? 答えは361通りですけど、求め方が分かりません。 教えて下さりませんか?お願いします。

  • C言語でのエラーの直し方について?

    C言語でのエラーが発生したとします。その時、どのようにして、エラーを見つけ直していくのですか? 私はprintfを用いて値を見ることでエラーを見つけています。 ステップインで実行して変数にどのような値が入っているか見つけようともしているのですが、変数にa値が16進数で格納されていたり、アドレスがあったりと見方が複雑でうまく発見できていません。 正しい、エラーの見つけ方、直し方とはどういったやり方なのでしょうか?

  • 2進数&10進数&16進数の変換

     ◆ コンピュータで使用される2進数  人が日常使用している数値は10進数ですが、コンピュータは内部で数値を表現する場合、2進数を使用  しています。しかし、「0」と「1」だけの2進数では人が分かりにくいため、人間が見えるところでは  コンピュータは2進数を10進数や16進数が変換して表現しています。ここではその変換方法を学びます。  ◆ 2進数  2進数とは、「0」と「1」の2種類の数字を用いて全ての数を表現します。10進数では0から数えて「9」の  次は位があがることになりますが、2進数では「 1 」の次に位があります。位があがれば、その新しい桁は   「 1 」 となり、それ以下の桁は全て 「 0 」 となります。それでは、2進数の数の増え方を見てみましょう。      ところで、2進数を表現する時は一般的に8桁単位で表現するため、8桁未満の場合は頭に0をつけます。  つまり、上の2進数の値は順番に 00000000 → 00000001 → 00000010 → 00000011 → 00000100 →  00000101 → 00000110 → 00000111 → 00001000 と表します。以下は2進数と10進数の対応表です。 2進数と10進数の対応表 10進数 0 1 2 3 4 5 6 7 8 9 10 ・・・ 2進数 0 1 10 11 100 101 110 111 1000 1001 1010 ・・・  ◆ 2進数から10進数への変換方法  10進数と2進数の対応表は以下の通りです。2進数の桁が上がる時の10進数の値が以下となります。 2進数と10進数の対応表2 10進数 1 2 4 8 16 32 64 128 2進数 00000001 00000010 00000100 00001000 00010000 00100000 01000000 10000000  従って、2進数で「1」となっている桁に対応する上記の10進数の基準値を合計することにより、2進数から  10進数の値を求めることができます。例えば、2進数の「 00101010 」を10進数に変換する場合、基準値が  32、8、2の所でビットが1なので下図の通り、2進数の「 00101010 」は10進数では「42」だと分かります。            ◆ 10進数から2進数への変換方法  10進数の数値を「 0 」になるまで「 2 」で割り算していき、その結果の「余りの数 」を並べることで  ある10進数の値を2進数の値へ変換することができます。それでは、具体的に変換して見て行きましょう。           例えば、10進数の「160」を2で割り算していくと上図の結果となります。後は、余りの数を下から順番に  並べれば 「 10100000 」 の値が算出されます。次に、「22」を2で割り算していき余りの数を下から順に  並べれば 「 10110 」 の値が算出されます。ネットワークにおいては、2進数を一般的に8桁で表示する  ことから、8桁になるよう上位に「 0 」を追加して「 00010110 」とします。当然「 10110 」と同じ値。 因みにここ参照ですがhttp://www.infraexpert.com/study/ip1.html なぜこれが10進数なんでょうか? 10進数というのは、0から9までの数字が1増えて10になるんですよね? なのに2進数と10進数の対応表2を見ると 倍数になっているのですが、、 これはいったいどういう違いなんでしょうか? 回答お願いいたします。 ほかにも解らなそうな点は、教えて頂けると幸いです。

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

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

  • 二進数の引き算がよくわからない

    0.1B - 1.01B =って十進数に変換せずに、二進数のままではどう計算するんですか? 大きいのから小さいのを引く計算は大丈夫だけど、逆はよく分かりません。 2^-2の位は、0-1なので1となる。 2^-1の位は、2^-2の位の計算で繰り下がってきた1を引いて0となる。 2の位は、0-1なのでで1となる。 これに-をつける。 よって、-1.01B。 たぶん、間違えてる気がします…

  • ステップ数??

    ステップ数って何ですか?就職活動の面接の時にプログラミング能力をステップ数で聞かれることがよくありますが、そんな言葉知りません。誰かC言語でのステップ数について教えてください。

  • ステップ数について

    私の知人が会社面接にて「ソフトウェア関係の仕事がしたいです」と 言ったところ,会社側の人に「ステップ数はどれぐらいのプログラムを 書いたことがあるのか」とたずねられ,回答に困ってしまったそうです. 彼はC言語しかやったことがないそうで,ステップ数と聞けば繰り返し 何回ループさせたか,ということがステップ数だと思っていたそうなん ですが(っというか私もそうなんですが...),会社の人の言ってる ステップ数とはどうやら違う感じがしたらしく,「ステップ数とはなん ですか」と聞いたところ,それで話しは終わってしまったそうです. 後から調べてみたところ,fortran ではステップ数という言葉が出て来る ようなのですが,C言語ではあまりステップ数ということばを使わない ので,会社の人の発言の意味が良く分かりません. 誰かご存知の方がいましたら,教えて頂けないでしょうか.

  • 数について

    はじめまして。 今わからないことがあって困っています。c言語のlong型で取り扱う事ができる2147483647よりも大きい数を扱いたいのですが、どのようにすればいいのでしょうか?どうかお力を貸してください。