2016年10月5日水曜日

2進数表現(正の整数)

今日は・・・皆大好き2進数 (*´▽`*)

<この記事で覚えるべき内容1>
2進数で正の整数を表現する時、一番右のビットの右側に小数点を置く(正の整数なので当たり前だが・・・)固定小数点表現を用いる・・・とある。

わざわざまどろっこしい言い方しなくてもよさそうなものだけど、確かに小数点は固定されてる・・・というか正の整数なのに小数点いらない気もしなくはない・・・

表現できるビット数(n)に対して、 $2^n$ 通りの数の表現が可能となる。

で、表現される最小の数は「0」であり、「0」もビットを消費するので最大の数は「$2^n-1$」となる。

かつて高校生だった時にこの手の表現はいや程見てきたけど、結局嫌気がさした一番の原因は「こまかっ( ゚Д゚)」というところではなかろうか。

真剣に考えてみるととても当たり前だし、大人だからそこが「大きな差」を生むと思えるが、若い時分に $2^n-1$ と $2^{n-1}$ の違いなどどうでも良い気がするし、それぐらいだったら可愛い若い女の子を見ていた方がいいというのも納得できる。
そちらの方がとても大事だ・・・

だが俺は今試験勉強している結構なおじさんなのでわかるっ( ゚Д゚)

「『0』が一つの数字として存在するから表現できる数は『$2^n$』から『1』を引いた『$2^n-1$』である」とっ( ゚Д゚)
・・・俺って相当頭悪かったんだな・・・www

ここで重要な公式が突拍子もなく出てくるのはいつも通り
2進数を10進数に変換する公式だっ ( ゚Д゚)

$$a_m×2^m+a_{m-1}×2^{m-1}+…+a_0×2^0=\sum_{k=0}^m a_k\cdot 2_k$$

そうだね・・・ 掛けて足せば出るよね・・・ で、「2進数⇒10進数の求め方」と書いてあるが、正確には10進数のd乗を2進数で表すためには何桁必要かを求める式が以下。
だいぶ端折ってるなwww

$$10^d-1\approx2^n-1$$
$$10^d\approx 2^n$$
ここで両辺の対数を取ると
$$\log_{10}10^d\approx\log_{10}2^n$$
$$d\cdot log_{10}10\approx n\cdot \log_{10}2$$
$$d\approx n\cdot \log_{10}2$$

かつて対数の勉強をしていた時に常々思っていたのだが、「何故対数を使うのか?」という点は俺が本当に意味を理解していなかったことを如実に表しているように思う。
そのころの先生は教えてくれようとしていたのだとは思うが・・・ 俺は女の子に夢中だったっ( ゚Д゚)

まず、対数を取る:べき乗の計算を行う ⇒ 元の数字とは関係のない数字になる: $10^d$ は $\log_{10}10^d は数字としては全く違うもので、「d」乗の数値だけを取り出して計算しやすくしているだけになる。

上の例では、「10」を底に取った対数を両辺で表していて、それがほぼ同じになることを利用して、「10」のd乗は2進数のn乗になるのか?を解いている。

対数に関しては別途項目を割いているようなので、そこで改めて勉強しよう・・・

しかし3分の2ページでこれだけのことを表現しようとするとは・・・ 参考書恐るべし

0 件のコメント:

コメントを投稿