【超入門IT講座】現代社会に必須!データベースのキホン①
どうもみなさんこんにちは、IT修行中のななこです!ここでは、IT超初心者の私が知りたい!と思ったことにスポットを当て、「なるほど!」と感じたことをご紹介します!今回はITエンジニアになるなら知っておくべき「データベース」の基本について学んだことをお話しますね✨1. データベースとは?データベースは、アプリケーションのデータを保存・蓄積するための手段です!大量のデータを蓄積しておいて、そこから必要な
Workteria(ワークテリア)では難易度の高いものから低いものまで、スキルや経験に合わせた案件を多数揃えています。会員登録は無料ですので、ぜひ会員登録してご希望の案件を探してみてください!
フリーランス/正社員のエンジニアとして活躍するには、ご自身のスキルや経験に合わせた仕事を選ぶことが大切です。ご希望の案件がみつからない場合はお気軽にお問い合わせください!ユーザ満足度の高いキャリアコンサルタントが在籍していますので、希望条件や悩み事などなんでもご相談ください。ご希望にピッタリの案件をご紹介させていただきます。
10進数で小数点の表現ができるように、2進数でも小数点を表すことができます。
この記事を読むことで、
・2進数の小数点の表し方
・固定小数点数とは
・浮動小数点数とは
・浮動小数点数の正規化について
以上のことが分かります。
また、基数・進数・桁の重みについてより詳しく知りたい方は、
をご一読ください。基数についてより知ることができます!
2進数の数値を表す方法で、「固定小数点数」と「浮動小数点数」というものがあります。
2進数の1桁は「1ビット」、8桁で「8ビット(1バイト)」です。
この8ビットの中で、小数点を使って数値を表そうとした場合において
・ビット列のどの位置に小数点があるか、決まっている数値を表現するものを「固定小数点数」
・ビット列の小数点を移動させ、移動させた分を指数表記で数値を扱うものを「浮動小数点数」
固定小数点数は、事前に小数点の位置が決められている場合にのみ用いられます。
例えば、頭から5ビット分を整数、と決めた(決まっていた)ら、「10001.011」となります。
(符号(+、-)ありの場合は、一番左のビット列が符号用になります)
固定小数点数では、頭から何ビット分を整数にするかが決まっているため、表現できる数値の有効範囲数も始めに決まります。
固定小数点数のメリットとしては、あらかじめ小数点の位置が決まっているため、整数部小数部などの数値やデータの解釈がしやすい点です。
デメリットとしては上記でも説明した通り、頭から何ビット分を整数にするかがきまっているため、表現できる数値に限りが出てきてしまいます。
そのため、整数を表す場合には最大の桁数を利用して表現ができます。
コンピュータでは、一番右側に小数点を置くことで、整数を表すことができます。
浮動小数点は、小数点の位置を移動させ、移動した分を指数に表します。
小数点を移動させたことで、表現できる数値が3桁分増えました。
小数点を移動させた分は、基数と指数を掛け算することで表現でき、この表記法を「指数表記」と呼びます。
ここでは、2進数の指数表記を載せてあります。
10進数にしたい場合は、基数のところを「10」にします。
このように、浮動小数点数を使用することで、表現できる数値の有効範囲数を多くとることができます。
浮動小数点数のメリットは、小数点の位置を移動することができ表せる範囲が広がる、ということです。
デメリットは、誤差や無限小数が発生してしまい、正確な数値を表現することができなくなってしまうこともある、ということです。
浮動小数点数では、小数点の位置を移動させられはしますが、決められた桁内での数値表現のため、その桁からあぶれた数値は切り捨てや四捨五入などされてしまうため、正確な数値でなくなる場合も出てきてしまうのです。
浮動小数点数の誤差や桁落ち、無限小数については、
浮動小数点数の誤差
で、詳しく解説してるので、併せて読んでみてください!
正規化とは、浮動小数点数において、数値の有効範囲数を広げるために、小数点の位置を移動させることをです。
上記までの説明でも、実は正規化を行っていましたが、ここでは何を正規化というのかを詳しく解説していきます。
正規化には、指数表記を使います。
10進数「0.0065」を例に上げてみましょう。
小数点を右に2つずらしたことで、0.0065を表現するためには小数点以下の桁数が4桁必要だったところ、小数点を右に2つずらしたことで、仮数部が0.65となり小数点以下の桁数を2桁で表現することができました。
2進数の正規化を32ビット形式で見てみましょう。
32ビット形式は、よく使われる浮動小数点数の形式になります。
10進数「0.375」を32ビット形式を用いて正規化してみます。
32ビット形式で浮動小数点数を表現することができました。
上記の32ビット形式での浮動小数点数の表現方法の他に、IEEE754の浮動小数点数形式の表現があります。
IEEE754とは、米国電子電気技術者協会により規格化された形式を指します。
32ビット、64ビット、128ビットなどの形式があります。
先ほどの32ビット形式の浮動小数点数と何が違うのか見てみましょう。
IEEE754では、仮数部を「1.xxxx」のように表現します。
例えば、0.011を
仮数部0.Mで正規化すると→0.11(仮数部が2ビット=小数点以下が2桁必要)
仮数部1.Mで正規化すると→1.1 (仮数部が1ビット=小数点以下が1桁必要)
となります。
IEEE754で表現すると、1ビット多く表現ができるということです。
また、指数部は8ビットで表現します。
2進数で8ビットを表現すると、
となります。
しかし、実際には負の数も扱うため、
が必要です。
指数部分でマイナスを表現することもできますが、分かりやすくするために、実際の指数にそれぞれ、127のプラスすると、整数のみで数値を表現したのです。
「127をプラスする」=「バイアス127」として補正値を加えて値を表現する、ということです。
それでは、このIEEE754の形式で浮動小数点数を表現してみましょう。
10進数「0.375」を正規化してみます。
IEEE754の32ビット形式で表現することができました。
※補足ですが、指数部が全て「0」で埋められた場合、「0.0」となり、指数部が全て「1」で埋められた場合は、「無限大」という扱いになります。
固定小数点数・浮動小数点数と正規化について分かったでしょうか?
また、浮動小数点数では、誤差や桁落ちが発生することもありえます。
浮動小数点数の誤差や桁落ち、無限小数については、
浮動小数点数の誤差
で、詳しく解説してるので、併せて読んでみてください!
そのような方はぜひ、Workteriaサイトをご利用ください!
定期的にご本人に合う高額案件を紹介
リモートワークなど自由な働き方ができる案件多数
専属エージェントが契約や請求をトータルサポート