*情報の基礎理論 [#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]]/