*情報の基礎理論 [#qc35d9ee]
コンピュータを学習するうえで必要となる基礎事項・知識について解説します。~
**数値変換とデータ表現 [#vd1a3b08]
***r進法 [#b8932461]
10進法に代表されるr進法。~
2進法とか3進法などなど。この2とか3とかを''基数''といいます。~
たとえば、16進法であらわされた2A.4(16)は
#sh(){{
2*16^1 + 10*16^0 + 4*16^-1 = 32+10+0.25= 42.25
}}
となります。

** 正の整数の表現 [#qfe30c66]
*** 2進数nけたで表現できる数 [#y4279d83]
2進数は各桁を0か1で表現します。2進数で表現できる数は''0〜2^n-1''です。~

** 負数の表現 [#s07697d3]
*** 2の補数 [#jaafe1e9]
一般的に負の数を表現する場合、''補数''というものが用いられます。~
-1は
#sh(0-1=-1)
ですね。んなことはよいです。これを2進数であらわすと
#sh(){{
00000000
-      1
---------
      -1
}}
ですが、2進数にそもそもマイナスは使えません。
そこで、最上位ビットの上にけたに1があると仮定し計算した結果を-1とします。
#sh(){{
100000000
-       1 →N
----------
011111111 →M

N(1) + M(−1) = 0   
}}
このような考え方で2の負数を補数であらわします。~
補数であらわせる負数の範囲は nビットの場合、
#sh(){{
-1 〜 -2^(n-1)
}}
です。

** 負数を表現する方法 [#l3c80aa5]
負数を表現する方法は3つあります。
+2の補数
+符号と絶対値→0と-0がある。
+1の補数→0と-0がある。
正負の別を表現するために先頭の1ビットを使用します。
この中で2の補数がもっとも一般的です。

** 小数点数の表現 [#l7732d23]
***小数の表現 [#yce3cd89]
一般的に小数だけで構成された数値を表現する場合は、最上位ビットの右側を小数点位置とします。これを''固定小数点表現''といいます。
#sh(){{
01010000 = 0.625
 |_小数点位置

11010000 = 0.625 - 1 = -0.375
 |_小数点位置
}}

**小数点数の表現 [#gfd170cf]
上記の固定小数点表現では整数部分を表現できません。そのため小数点を右に移動させ整数部分を拡張します。
#sh(){{
01011010 = 5.625
    |_小数点位置

11011010 = -2.375
    |_小数点位置
}}

** 浮動小数点数表現 [#ee753a4b]
*** 実数の表現 [#xc5d514a]
7.25を有効桁数を表す''仮数部''と桁数を表す''指数部''に分けられる。~
#sh(){{
7.25 = 10 ^ 1  *  0.725
       底  指数部  仮数部 → 1以下で表現
}}
#hr
/[[Top]]/[[応用情報tips]]/

トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS