• 締切済み

2進数の変換

10進数を2進数に変換するとき、÷2して余りが2進数となるのはなぜでしょうか。

noname#251292
noname#251292

みんなの回答

  • shintaro-2
  • ベストアンサー率36% (2266/6244)
回答No.4

#2です >int(X,2)=a*2^2+b*2^1+c ですから >mod(int(x,2))=c となって 間違い 正しくは int(mod(X,2))=a*2^2+b*2^1+c ですから ↑2で割った商の部分 mod(int(mod(x,2)),2)=c となって ↑2で割った商の部分を2で割った余り

  • Water_5
  • ベストアンサー率17% (56/314)
回答No.3

2進数に変換したのだから、あまりは1か0ですね。 2進数に変換したのだから、余りも2進数表記なのは 当然です。

  • shintaro-2
  • ベストアンサー率36% (2266/6244)
回答No.2

10進→n進変換ではそうなります。 X→a*2^3+b*2^2+c*2^1+dとすると mod(X,2)=d int(X,2)=a*2^2+b*2^1+c ですから mod(int(x,2))=c となって 元の数を割った余り、 1回目の商を割った余り、 2回目の商を割った余りで1桁ずつ上の桁になるからです。 理屈では理解できますが、 私は上の桁から割る(例えば、32→16→8)方が理解しやすいです。

  • trytobe
  • ベストアンサー率36% (3457/9591)
回答No.1

10進数での表記が、÷10して余りを並べたものが10進数表記となるのと同じです。

関連するQ&A

  • 10進数から2進数への変換の仕方について

    10進数から2進数への変換の仕方について 以下のサイトに説明があったのですが、 http://www.pursue.ne.jp/jouhousyo/sysad/sysad010.htm 10進数の60を2進数に変換する場合、変換したい10進数を商が0になるまで2で割りつづけ商と余りを求めていますが、その時に、15/2などは7.5になり余りが、説明では商が7、余りが1になっています。 10進数から2進数へ変換する場合は、小数点以下の余りはすべて1として計算するのでしょうか?

  • 10進数からn進数への変換

    27という10進数の数字を2進数へと変換する時は 2で割っていて余りを並べることで求めることが出来ますが やり方はわかるのですが、そのようになる理由が理解できません。 27=【(1×2^3)+(1×2^2)+(0×2^1)+(1×2^0)】×2+1(余り) 13=【(1×2^2)+(1×2^1)+(0×2^0)】×2+1(余り) ・ ・ ・ とこのように式での説明をみると、式の上ではそうなるのはわかるのですが・・・・ なぜ27を2で割ったものの余りが2進数の1桁目になるのか、ということを 数式以外で説明できないものでしょうか? そういうものなんだ、というふうに考えるしかないのでしょうか?

  • 10進数を2進数に変換するについて

    10進数「44」を2進数に変換するには、 44÷2=22 余り0 22÷2=11 余り0 11÷2=5 余り1 5÷2=2 余り1 2÷2=1 余り0 1÷2=0 余り1 下から順に数え、2進数で101100と分かります。 これを2で割って余りを出すとは、どういうことですか。 右に1ビットシフトして溢れたビット10進数の44を表す方法が分かりません。 「(1×2^5+0×2^4+1×2^3+1×2^2+0×2^1+0)÷2」とは、どういうことですか。 なぜ最後に2で割るのでしょうか。 またこれが、 (1×2^4+0×2^3+1×2^2+1×2^1+0)と説明されています。 双方とも計算しても10進数の44にはなりません。 これ等は、どのように解釈すれば良いのでしょうか。 お手数ですが、説明の出来る方おられましたら、回答お願い致します。

  • 2進数と10進数と16進数の変換について

    私の学校の情報の授業の中で、2進数を16進数にしたり、また、逆をやったり、10進数を交えた、変換のテストが毎回の授業であるのですが、私は納得がいかないのです。 8桁もある2進数の足し算をやらせたり、2進数の引き算、割り算・・・(その他、文章問題など) でも、文句ばかり言っていても始まらないのですが・・・     (履修不足問題で毎回、テストをやることになってしまったらしい) そこで質問です。 私の知っているやり方が、2進数なら、10進数を2でひたすら割っていき、余りを後ろから読む。16進数も同様です。 これが厄介なもので、2進数の4桁までならどうにか10進数に変換できるのですが、8桁ともなると、問題を見た瞬間に冷や汗です。(苦笑) これしか知りません。(16→10 も知りません) しかし、他の効率的なやり方があるという話を聞いたことがあります。 毎回、10進数に直して計算していると、確実に時間がないのです。 他の効率的なやり方をご存知の方、また、そういうサイトをご存知の方いらっしゃいましたら、返答、よろしくお願いします。

  • 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進数に変換の

    8進数223を2進数に変換したいのですが、 まず223を10進数に変換(2×8^2+2×8+3×1=147)→それから2進数に変換→答えは10010011 という方法しかないのでしょうか? 10進数に変換せず、直接2進数にする方法はあるのでしょうか?

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

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

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

    2進数から16進数への変換はだいたいはできるんですが、小数点の2進数を16進数に変換するやり方がわかりません。 (例) 2進数1001→16進数では9ですが、0.0101などのやりかたがわかりません。 よろしくお願いします

  • 2進数に簡単にする方法、、、

    2進数に簡単に変換する技を大学ん時にならったのですが、忘れました。。 ひたすら2で割って、割って、ってやったんですが。。 例えば、100を2進数にするとき 2)_100__ 2)_50___ 2)_25___ 2)_12___ 2)__6___ 2)__3___ 2)__忘れた こんな感じで2で割って、余りをどーのこーのするってあったんですが、 忘れました。 どなたか教えて下さい。

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

    こんにちは。 10進数から2進数への変換をせよという問いの場合、2で割っていくというのが基本的な考えですよね。割り算を使わずに10進数から2進数に変換する方法というのはあるのでしょうか?ご存知の方いましたらご教授ください。