2進数を10進数表記

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
チタン合金

2進数を10進数表記

#1

投稿記事 by チタン合金 » 10年前

2進数で10011010は、10進数でいくつでしょうか?

2の7乗の位・・・・・1×128 = 128
2の6乗の位・・・・・0× 64= 0
2の5乗の位・・・・・0× 32= 0
2の4乗の位・・・・・1× 16=16
2の3乗の位・・・・・1×  8= 8
2の2乗の位・・・・・0×  4= 0
2の1乗の位・・・・・ 1×  2=2
2の0乗の位・・・・・0×  1=0
________________________
合計                  154

他の質問サイト様(OKなんとか)でも質問したのですが、やっぱり解らなかったので質問させていただきます。
なぜこの公式でこうなるのか詳しく解りやすく、教えて下さい。
特に計算式の左の0と1の数字が何なのかよく解りません。よろしくお願いします。
非常に頭固いので最後まで教えてくれる方お願いします。

box
記事: 2002
登録日時: 14年前

Re: 2進数を10進数表記

#2

投稿記事 by box » 10年前

チタン合金 さんが書きました:2進数で10011010は、10進数でいくつでしょうか?
われわれがふだんふつうに使っている10進法で
例えば365(さんびゃくろくじゅうご)
って言ってるのは、
365
= 3 × 100 + 6 × 10 + 5 × 1
= 3 × 10^2 + 6 × 10^1 + 5 × 10^0
ってことです。
いちばん右の位には
10^0
の重みがかかってます。その左隣の位には
10^1
の重みがかかってます。その左隣の位には
10^2
の重みがかかってます。以下同様に、もっと桁数が多くなれば、
10^3, 10^4, 10^5, ...
の重みが順にかかっていきます。こんなことはほとんど意識していないでしょうが、
実際にはそういうことです。

上記の
10^
(10の何とか乗)

2^
(2の何とか乗)
に置き換えたのが2進法です。

10011010
の、いちばん右の位(0)には、2^0の重みがかかっています。
左隣の位(1)には、2^1の重みがかかっています。
...
以下同様に、いちばん左の位(1)には2^7の重みがかかっています。
よって、2進数の10011010を10進数に直すと、
1 × 2^7 + 0 × 2^6 + 0 × 2^5 + 1 × 2^4 + 1 × 2^3 + 0 × 2^2 + 1 × 2^1 + 0 × 2^0
= 2^7 + 2^4 + 2^3 + 2^1
= 128 + 16 + 8 + 2
= 154
バグのないプログラムはない。
プログラムは思ったとおりには動かない。書いたとおりに動く。

チタン合金

Re: 2進数を10進数表記

#3

投稿記事 by チタン合金 » 10年前

何となく解ってきました。
もう一つ質問しますが、10011010と2進数で数字が出てすぐ答えを出す方法はあるのでしょうか?
やっぱり地道に計算していくしかないのでしょうか?

すぐに答えを出す人がいるんですが、ツールでも使っているのか不思議です。

box
記事: 2002
登録日時: 14年前

Re: 2進数を10進数表記

#4

投稿記事 by box » 10年前

関数電卓でも使えば、さほど時間はかからないでしょう。
そういう道具がなければ、ふつうは地道に計算するしかないと思います。

ところで、すぐ、ってどのくらいの時間なんでしょうか。
2進数は10進数なんかに比べると明らかに桁数が大きいので、
今回のような8桁くらいならともかく、もっと桁数が増えると
そもそも何桁なのかを判別することに時間がかかりそうです。
バグのないプログラムはない。
プログラムは思ったとおりには動かない。書いたとおりに動く。

チタン合金

Re: 2進数を10進数表記

#5

投稿記事 by チタン合金 » 10年前

>ところで、すぐ、ってどのくらいの時間なんでしょうか。
私にその今回のような問題を出してすぐに答えを出しますね。(1分以内に)

回答ありがとうございました。
解決にいたします。

かずま

Re: 2進数を10進数表記

#6

投稿記事 by かずま » 10年前

チタン合金 さんが書きました: もう一つ質問しますが、10011010と2進数で数字が出てすぐ答えを出す方法はあるのでしょうか?
やっぱり地道に計算していくしかないのでしょうか?
8ビットなら、割とすぐにその値がわかります。

コード:

    2進  16進  10進
    0000   0    0
    0001   1    1
    0010   2    2
    0011   3    3
    0100   4    4
    0101   5    5
    0110   6    6
    0111   7    7
    1000   8    8
    1001   9    9
    1010   a   10
    1011   b   11
    1100   c   12
    1101   d   13
    1110   e   14
    1111   f   15
私は、この関係が頭の中に焼き付いています。
4ビットの 2進数を見たら、瞬時に 16進、10進の値が浮かびます。
それから、次の値もなんとなく記憶しています。

コード:

   16進  10進
    10    16
    20    32
    30    48
    40    64
    50    80
    60    96
    7f   127
    80   128
    a0   160
    c0   192
    ff   255
この状態で、10011010 を見ると、頭の中で即座に 16進の 9a に変換されます。
90 の値は覚えていないけど、a0 = 160 の前で 90 = 144 だと計算できます。
そこに 0a = 10 を足して 154 というのは、数秒で出てきます。

16進の 1~f と 10~f0 の値を完璧に覚えていれば、
2桁の 16進数の値は、一つの足し算だけでできますから、
8桁の 2進数の値もすぐにわかるでしょう。

baby2478nishi
記事: 52
登録日時: 10年前
住所: 兵庫県姫路市

Re: 2進数を10進数表記

#7

投稿記事 by baby2478nishi » 10年前

こんにちは

Win標準の電卓を使えばできるかと。

http://andmem.blogspot.jp/2014/10/windo ... lator.html

閉鎖

“C言語何でも質問掲示板” へ戻る