pwd-it:IT資格の勉強ブログ

IT系資格の勉強に役立つ情報などを共有していきたいと思います

1.1.1.2.数値表現

1.1.1.2.数値表現

前回は、コンピュータ内部では2進数で全て管理されていて、日頃使っている10進数からどのように算出するかを説明しました。
今回は、小数点以下の桁や負の数を含めて10進数や2進数をどのようにコンピュータで管理するのかを説明します。
また、最初に"バイト"、"ビット"の用語についても説明します。

重要用語

  • バイト、ビット、オクテット
  • ゾーン10進数、パック10進数
  • 2の補数
  • 固定小数点数、浮動小数点数

スポンサードリンク

目次

ビット・バイト・オクテット

ビット

ビット:【英】bit
ビットとは、コンピュータが扱う情報の最小単位。「binary digit」を略したものが語源と言われる。2つの選択肢から1つを特定するのに必要な情報量が1ビット。
出典:IT用語辞典 e-Words(http://e-words.jp/

2進数では、0と1で全ての数を表していましたが、文字や画像を表す場合も最小単位はこの0または1に分解されます。コンピュータが扱う情報の最小単位です。
通信量などで使われる単位で、例えば、最速100Mbpsというのは1秒間に100000000ビットのデータをやり取りできることを表しています。

バイト、オクテット

バイト:【英】byte
バイトとは、情報量の単位の一つで、8ビットのこと。2進数で8桁の数を表すことができる情報量で、256種類(2の8乗)の異なる状態を表現することができる。

1バイト=8ビット です。ファイルサイズを表す場合などに使われる単位で、馴染みも深いと思います。1TB(テラバイト=1000000000000バイト)のストレージなど。

※"1バイト=8ビット"と書いてしまいましが、ごく稀に、6ビットや9ビットで1バイトとするコンピュータもあり、厳密に8ビットを表す言葉はオクテットを使用します。特に断りがなければ、"1バイト=8ビット"で良いです。

バイトはB(大文字)、ビットはb(小文字)で記述されます。


10進数の表現方法1:ゾーン10進数

ゾーン10進数 - ゾーン10進数は、10進数の1桁を8ビットで表す方法です - 最下位桁の上位4ビットに符号情報を格納し、下位4ビットに数値を2進数で格納します(前回説明した通り、10進数1桁は2進数4桁で表せます) - 文字データとの親和性が良いのが特徴です - 符号ビット - 正または零:1100 - 負:1101 - 最下位以外の桁は上位4ビットにはゾーンビットという固定値を格納します - ゾーンビットの例(コンピュータによって異なる) - ゾーンビット:0011 - 数字ビットでは、3桁以下で表現できる数字の場合も、4ビットで表現するために上位の桁を0で埋めます

  10進数1桁を2進数で表した場合の凡例 : |(上位4ビット):(下位4ビット)|

  +2017 : |0011:0010|0011:0000|0011:0001|1100:1110|
  -2017 : |0011:0010|0011:0000|0011:0001|1101:1110|
          |ゾーン:(2)|ゾーン:(0)|ゾーン:(1)|符号:(7)|

  ゾーンビット=0011
  符号ビット(正零)=1100
  符号ビット(負)=1101

10進数の表現方法2:パック10進数

パック10進数 - パック10進数は10進数の1桁を4ビットで表し、最後の4ビットで符号を表す方法です。 - 計算速度が速いのが特徴です - 符号ビット(ゾーン10進数と同じ) - 正または零:1100 - 負:1101 - 数字ビットでは、3桁以下で表現できる数字の場合も、4ビットで表現するために上位の桁を0で埋めます - 10進数で桁数が偶数の場合は、先頭4ビットを0000で埋めます。これは、コンピュータがバイト=8ビット単位で領域を確保するためです。

  10進数1桁を2進数で表した場合の凡例 : |(上位4ビット):(下位4ビット)|

  +2017 : |0000:0010|0000:0001|1110:1100|
  -2017 : |0000:0010|0000:0001|1110:1101|
          |(0):(2)|(0):(1)|(7):符号|

  符号ビット(正零)=1100
  符号ビット(負)=1101

2の補数、1の補数

補数(ほすう):【英】complement
補数とは、ある自然数をn進数(n進法)で表現した時に、足し合わせるとちょうど「nのべき乗」か「nのべき乗-1」になる自然数のうち、最小のもの。前者は「足すとちょうど桁が一つ増える数」で、「基数の補数」とも呼ばれる。後者は「足しても桁が増えない最大の数」で、「減基数の補数」とも呼ばれる。
出典:IT用語辞典 e-Words(http://e-words.jp/

この後で出てくる2進数の小数表現で必要となる概念である補数について説明します。 2進数では、基数が2なので2の補数と1の補数を考えます。

f:id:pwd-tennis:20170312203507j:plain


2進数の表現方法1:固定小数点表示

固定小数点 - 2進整数を、固定長の2進数で表現します - 先頭1ビットは符号ビットです - 正数または0:0 - 負数:1 - 表示するビット長は、コンピュータによって違います(8ビット、16ビット、32ビットなど) - 負の数は、2の補数で表現します - nビットの固定小数点数であれば、” - (2のn-1乗) 〜 (2のn-2乗) - 1 ”の範囲、2のn乗通りの数を表現することができます - 表現できる数は、負数の方が1多くなります

f:id:pwd-tennis:20170312203535j:plain


2進数の表現方法2:浮動小数点表示

指数形式 - ± m × (rのe乗) で表されます。例えば、10進数で-2017000は、-2.017×106で表します。 - 仮数部符号(正:0、負:1) - 仮数部:m ※mの最上位が0とならないように調整する操作を正規化と呼びます - 指数部:e - 基数:r(2進数であれば2)

f:id:pwd-tennis:20170312203558j:plain

浮動小数点 - 実数を固定長の2進数により指数形式で表現します - 非常に大きい値や、非常に小さい値を表現することができるメリットがあります - 循環小数のように、固定の桁数で表現できない数を表す場合に、切り捨てや四捨五入によって誤差が発生することがあります - IEEE754の国際標準形式では、先頭ビットから、 - 仮数部符号:1ビット - 指数部e:8ビット (負数は2の補数形式で表現) - 指数部の後ろに小数点 - 仮数部m:23ビット

f:id:pwd-tennis:20170312203616j:plain


例題:基本情報技術者(FE) H28秋 午前 問4

f:id:pwd-tennis:20170312203630j:plain


例題:基本情報技術者(FE) H27秋 午後 問2

f:id:pwd-tennis:20170312203645j:plain f:id:pwd-tennis:20170312203659j:plain f:id:pwd-tennis:20170312203708j:plain f:id:pwd-tennis:20170312203718j:plain

スポンサードリンク