- ベストアンサー
×進法について
2,10,16進法についてです。 相互変換するにはどのようにしたらいいのですか? たとえば、10進から2進 , 10進から16進。 また、16進で10より大きくなった場合とかも併せて教えてください。
- みんなの回答 (7)
- 専門家の回答
質問者が選んだベストアンサー
これは 自分がやりやすい方法ですので、参考までに。 基本的に掛け算と足し算と引き算をすれば簡単に出来ます。 ・二進法の考え方 -------------------------------------------------------------- (2の6乗) (2の5乗) (2の4乗) (2の3乗) (2の2乗) (2の1乗) (2の0乗) 10進数 64 32 16 8 4 2 1 -------------------------------------------------------------- ・二進数→十進数 例(1111110)を十進数 -------------------------------------------------------------- (2の6乗) (2の5乗) (2の4乗) (2の3乗) (2の2乗) (2の1乗) (2の0乗) 10進数 64 32 16 8 4 2 1 -------------------------------------------------------------- 二進数 1 1 1 1 1 1 0 (1111110)→64+32+16+8+4+2=126 ---------------------------------------------------------------------- ・十進数→二進数 例(100)を2進数 100→64*1+32*1+16*0+8*0+4*1+2*0+1*0→1100100 ――――――――――――――――――――――――――――――――――――― ・16進法の考え方 数え方は ------------------------------------------------------------------ 10進数 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 16進数 F E D C B A 9 8 7 6 5 4 3 2 1 0 ------------------------------------------------------------------ 16になると10に桁上がりする。 ----------------------------------------- (16の3乗) (16の2乗) (16の1乗) (16の0乗) 十進数 4096 256 16 1 ----------------------------------------- ・16進数→10進数 (A35)を10進数 (A35)→256*A+16*3+1*5→256*10+16*3+1*5→2613 ・10進数→16進数 2500を16進数 2500÷256=9…196 196÷16=12…4 --------------------------------- (16の2乗) (16の1乗) (16の0乗) 十進数 256 16 1 ------------------------------- 9 12 4 ここで 16進数なので12をCにして 2500→9C4 になります ――――――――――――――――――――――――――――――――――――― 16進数→2進数 は No.4 さんやり方が分かりやすいですね。 4桁に分ける理由は 2進の(1111)→10進の15→16進の F 2進の(10000)→10進の16→16進の10 2進数が4桁から5桁に桁上げする時、16進数でもちょうど良く桁上がりするから 2進数を4桁ずつ分けるのです。 ――――――――――――――――――――――――――――――――――――― 長々とすいませんでした
その他の回答 (6)
- martens
- ベストアンサー率0% (0/1)
ちゃんとした説明は他の方がされているのでオマケっぽいことを。 Windowsならば電卓を使えば楽ちんです。 スタートメニュー>プログラム>アクセサリ>電卓を選択。 表示で関数電卓を選びます。 16 or 10 or 8 or 2進数が選べるので10進にチェックをいれてください。 例えば、123と入力して16進のところにチェックを入れれば、16進数に変換された値=7Bが表示されます。 2進・16進→10進の場合はその逆で。 割と便利ですよ。
こういう変換は、最初の頃は意外と迷いますよね。 僕は、No.2の方の方法を初めて知ったとき、頭の中が???に成ってしまった、という経験を持っているので、No.2の方の方法の意味などを説明させてもらいたく思います。 「a/b = c (余りd)」というのと「a = b*c + d」というのは同じ事(同値)ですよね。これは、「aの中にはbがc個含まれていて、dというゴミがついて来る。」という意味だと考えると印象に残り易いかと思います(いや、そんなことは当たり前じゃんか、と思っても石を投げないで下さい~~)。 これを使って説明を試みます。 No.2の方に習って、13(十進法表現)の十進数→二進数への変換で考えます。 13 = 2*6 + 1 = 2*(2*3) + 1 = 2^2*3 + 1 = 2^2*(2*1 + 1) + 1 = 2^3*1 + 2^2*1 + 1 これを二進法で表現すると、1101ですね。 この式の変形が、No.2の方の方法の意味です。つまり、2で割って行くことによってゴミ(余り)を「搾り出して」行く訳です。出て来たゴミで、小さい桁の方から順に埋めて行きます。 何気ないことですけど、参考になれば…。
- ARC
- ベストアンサー率46% (643/1383)
2進から16進の場合は、4桁ごとに分けて考ると楽です。 0100101011010101 ↓ 0100 1010 1101 0101 4 9 D 7 で、49D7となります。 16進から2進はその逆ですね。16進の各桁を、4桁の2進に直してやります。
- Mell-Lily
- ベストアンサー率27% (258/936)
10進法で”3729”は、 3×10^3+7×10^2+2×10^1+9×10^0 という意味です。2進法で”1011”は、 1×2^3+0×2^2+1×2^1+1×2^0 という意味です。
- eatern27
- ベストアンサー率55% (635/1135)
10進法から2進法へ 10進法の数をを2で割ります。余りを求めて下さい。次に、商を2で割る。余りを出す。商を2で割る。商が0になるまで繰り返す。余りを右から順に書いていく。 ex.13(10) 13/2=6あまり1,6/2=3あまり0,3/2=1あまり1,1/2=0あまり1 13(10)=1101(2) 括弧内は何進法であるかを示す。 10進法から16進法へ 2進法と同じ原理 10進法の数を16で割り、余りを出す。商を16で割る。余りを出す。商が0になるまで繰り返し、余りを右から順に書く。 ex.180 180/16=11あまり4、11/16=0あまり11 180(10)=B4(16) 商が0になるまでと書きましたが商が割る数(2や16)以下になるまででも良い。その場合は一番左に最後の商を書く。 16進法 0~9は同じ、 10はA、11はB、12はC、13はD、14はE、15はF、16は10となります。
- ShaneOMac
- ベストアンサー率39% (356/898)
http://www12.u-page.so-net.ne.jp/qc4/survive/network/binhex.htm こことか “10進数”“16進数”“変換” とかキーワードにしてググればいくらでも計算式の載ったページが出てきます。