ブログ - 情報理論とデジタル表現 第2回 数の符号化
二進数とか負の補数とか,COBOLで開発していた頃に使っていたけれどもう30年くらいご無沙汰です.浮動小数点演算も現代の高級言語だと意識しないんじゃないのかな.(若い人は知らないのではくらいの・・・)
• 位とり記数法/基数変換
○ 10進数のおさらい
§ 桁を1つ増やすと10倍の表現が可能.10倍の重み
○ n進法 n倍の重み
§ n・・・基数
§ 例:3進法は,0,1,2で表現.
§ 1234(10)と表す.
○ 二進数
§ 0と1で表現
○ 十六進数
§ 0からFまでで表現
○ 十進数から16真数への変換
§ 16で割って逆に並べる.
○ 十進数から十進数に変換してみて理解する.
§ i回目の割り算でi桁目の数を計算している.
§ 変換する基数で割り算する.
○ 十進小数
§ n-kの重み
§ 循環小数
□ 繰り返す最初と最後の数値の上に点をつけて表現.
□ ほとんどが循環小数.
• コンピュータ上での数の表現
○ 符号なし整数
§ 二進数の0と1をビットに対応させる.
○ 符号付き整数
§ 最上位のビットを1にする.
□ 最上位のビット=MSB Most Significant Bit
§ MSBが1
□ 2の補数による表現
□ 絶対値が同じ正の数のビットを反転し1をたす
® 一般化すると
◊ 符号付き整数をxビットで表現する環境
◊ 正の数の整数Nのビット列と-Nのビット列を足すと2xになる.
□ 2の補数
® ビット列の足し算で加減算が行える.
○ 浮動小数点
§ コンピュータ上では,基数は2
§ 符号とか数の少数部と指数を記録する