トップ  eラーニング  書籍紹介  用語集

Google

言語

開発環境

Webアプリ/ミドル

データベース

OS/ネットワーク

ITスキル

海外サイト翻訳

書籍検索

用語検索

1.数値表現・データ表現に関すること

基数変換

基数

基数とは、ちょうど桁上がりが起こる数で、 10進数の場合は10となり、2進数の場合は2となります。

たとえば、 131-45=53 の計算が何進法で成立するかを 調べる時(基本情報H18春[問2])、基数を知っていると便利です。

すなわち、
「(基数+引かれる方の最小の位の数)-引く方の同じ位の数=右辺の同じ位の数」 が成り立つからです。

上の例を計算してみると、
(基数 +1)-5=3 ⇒ 基数+1-5=3 ⇒ 基数-4=3 ⇒ 基数=7

したがって、7が基数となるので上の式では7進法で成立します。

基数変換

表 基数変換表(16進数→2進数→10進数)
16進2進10進
000000
100011
200102
300113
401004
501015
601106
701117
810008
910019
A101010
B101111
C110012
D110113
E111014
F111115

2進数で表現されている数値を、8進数や16進数などに変換する作業のことを 基数変換といいます。

たとえば、(2 A . 4 C )16を16進数から2進数に基数変換するとします(基本情報H18春[問1])。

下の表のように、16進数1桁を2進数4桁に変換すると

  (2A.4C)16 =(00101010.01001100)2
  =25+23+21+2-2+2-5+2-6

となります。

なお、2進数の1桁目が1となるときは10進数に直すと奇数になります(基本情報H12春[問3])。

数値表現

補数

補数とは、ある数を基準となる数から引いた値のことです。 2進数には、1の補数と2の補数、10進数には、9の補数と10の補数があります。

2進数の2の補数
2進数の2の補数をは次の1、2の手順で求めることが出来ます。

  1. ビットをすべて反転する
  2. 反転した値に1を加える

たとえば、10進数-5.625を、小数点位置は、4ビット目と5ビット目の間とし、 負数は2の補数表現を用いて、8ビット固定小数点形式による2進数で表してみると次のようになります。

与えられた数が負なので、まず絶対値を2進表現してから2の補数に変換します。

(5.625)10=(101.101)2

次に、小数点位置を合わせて8ビット表現にします。

(101.101)2=(0101.1010)2

そして、上記を2の補数とするため、各ビットを反転させて小数桁に1を加えます。

(0101.1010)2⇒(1010.0101)2+(0000.0001)2=(1010.0110)2

よって、(1010.0110)2になります(基本情報H11秋[問4])。

2進数の表現範囲

負数を2の補数で表現する固定小数点表示法において、nビットで表現できる範囲は、
ー2n-1~2n-1ー1
となります(基本情報H18春[問3])。

絶対値が最大である数値を16進数で表現

負数を2の補数で表す16ビットの符号付固定小数点方式で、絶対値が最大である数値を16進数として表すと次のようになります。

16ビットの符号付小数点方式では先頭1ビットが符号となるので数値は15ビットで表されます。

15ビットで表現できる正の値は0~32767までとなり、符号を含めて負の値として表現できる範囲は-1~-32768となります。

絶対値32768を2進数で表すと16ビットで1000000000000000となり、 このビット列を反転させると0111111111111111となります。 これに1を加えると1000000000000000となり、15ビットすべてが0となります。 負の値なので符号ビットは「1」となります。

したがって、
   (1000000000000000)2=(8000)16
と表示されます(基本情報H14秋[問3])。

浮動小数点数

浮動小数点数は、非常に大きな数や非常に小さな数を扱う場合に使用します。 浮動小数点数の構成は次のようになっています(基本情報H18春[問4]-問題文)。

浮動小数点数の構成
図 浮動小数点数の構成

たとえば0.000000000000000101×23という数値では、 仮数部のけたが不足して表現できなくなってしまいます。

そこで、指数部を調整することで仮数部の左側の0をシフトして消していきます。 このように仮数部を調整することで仮数部の左側の0を消して、 より大きな数値やより小さな数値を表現できるようにする作業を正規化といいます。

正規化の例

ここでは10進数0.25を正規化した表現を考えます(基本情報H18春[問4])。

まず10進数0.25を2進数に基数変換します。
(0.25)10 = (0.01)2

次に2進数0.01を正規化します。
(0.01)2 = (0.1)2×2-1

よって仮数部は、(10000000000)2

指数部は2を基数とし、負数は2の補数で表現します。

また、-1を2の補数で表現します。
(1111)2 = (-1)10

したがって、
  S:仮数部の符号は正なので、0となります。
  e:指数部は(1111)2です。
  f:仮数部は(10000000000)2です。

マスクビット

マスクビットとは、必要な情報を取り出すために ビットごとのAND演算を行う際に使うビットパターンのことです。

マスクとはビット列中の必要な部分のみを取り出すために必要な部分に覆いをかけてしまうという意味で、 必要部分を1、不要部分を0のビットパターンとしてAND演算を行うことで、不要部分はすべて0となり、 必要部分のビットパターンはそのまま得ることが出来きます。

たとえば、IEEE754(1985)標準では、32ビットの浮動小数点を次の形式で表現します。

この指数部を取り出すためのマスクビットを、16進数表現したものを求めると次のようになります。

指数部分のみを取り出すので、2ビット目から8ビット分のみ1となったビットパターンがマスクとなり、 それを16進数表現します(基本情報H12秋[問4])。
    0111111110000000000000000000000 ⇒ 7F800000

文字表現

符号なしの数字、英数字、かな漢字などのデータを文字データといいます。 文字データを一定の規則で表現するビットの集まりをコードといい、データをコードに変換することをコード化と呼びます。 その逆にコード化されたデータを下のデータに復元することを複合化と呼びます。 文字データをコンピュータで処理できる2進符号で表現する規約をコード体系といいます。 日本のコード体系はJISコードに準拠しています。 JIS以外にもさまざまなコード体系が存在します。

1文字を8ビットで表現するコードを1バイトコード、日本語など1文字を16ビットで 表現するコードを2バイトコードと呼びます。

JISコード

JIS(Japan industrial standards)コードは、ISOコードに片かなを考慮して日本で制定したコードです。 1バイト系(JIS X 0201)は7ビットの7単位コードと片かなも組み込んだ8ビットの8単位コードがあります。

JISコード表の読み方

次の図はJISコードの一部です。

二つの文字“A”と“2”をこの順にJISコードで表すと次のようになります(基本情報H18春[問8])。

したがって、2つの文字“A”と“2”をこの順にJISコードで表したものは、 「01000001 00110010」になります。

ASCIIコード

ASCIIコードは、ISOコードにパリティビットを付加して8ビットで1文字を表現したコードです。

ASCIIコード表の読み方

次の表は、ASCIIコードの一部を取り上げたものです。 これをもとにASCIIコード表の読み方を説明していきます。

なお、文字コードの8ビット目には、偶数パリティビットがつくものとし、 文字列“STAR”をASCIIでコード化したものを16進表記してみると次のようになります。

ビットはb7からb1の順で左から右に並びます。 @からGまでは7ビットの先頭3ビットは100で、PからWまでは7ビットの先頭3ビットは101であることが表から分かります。

なお、偶数パリティビットはビット列の「1」の個数を偶数個にするビットです。 7ビットまでで、「1」が奇数個ならばパリティビット「1」を加えて偶数個にします。 逆に、7ビットまでで、「1」が遇数個ならばパリティビットを「0」にします。

以上のことをふまえて16進表記を調べてみると次のようになります。

文字ビット列1のビット数パリティパリティ付ビット列16進値
S1010011偶数00101001153
T1010100奇数111010100D4
A1000001偶数00100000141
R1010010奇数111010010D2

よって、53D441D2になります(基本情報H12秋[問6])。

数値計算

誤差

けた落ち誤差

けた落ちとは、値がほぼ等しい二つの数値の差を求めたとき、 有効桁数が減ることによって発生する誤差をいいます。(ソフトウェア開発H20秋[問2])

情報落ち誤差

情報落ちとは、値の差が大きい2値の加減算で、 小さい値が無視される誤差のことです。

たとえば、浮動小数点表示の仮数部が23ビットであるコンピュータで計算した場合、 次の計算式は情報落ちします(基本情報H18春[問5])。

(1.01)2×218+(1.001)2×2-5

このようなことより、浮動小数点表現を使った足し算や引き算を行う場合、 指数をそろえる必要があります。

絶対値が非常に大きい数と絶対値が非常に小さい数を使って足し算や引き算を行うと、 どちらかの指数にあわせるため仮数部のけたが入りきれなくなり、小さい数が計算に反映されないことがあります。 このような誤差を情報落ちといいます。

戻る

Loarding…

グループサイト  zealseeds  zealseedsラーニング  zealseedsブックス  名か字  名科辞典  幸福の木の育て方

Copyright (C) 2007-2011 zealseeds. All Rights Reserved.お問合せ