まったり アイマス2

アイドルマスター2 超ライトユーザーのプレイ日記

4534. PC-8801 mkII SRミニ 発売へ、続き^5

2024年08月20日 | 日記

 8bit時代のパソコンBASICが扱う数値は、何も指定しなければ単精度浮動小数点数になります。今はIEEE形式が一般的で、しかしその元祖のインテル8087は1980年発売で、16bit CPUの8086用です。たしか、パソコンBASICでは4バイト(32bit)で1数値で、符号1bit、指数7bit、仮数24bitが普通でした。

 8bit/16bit機のC言語で整数(int)を指定すると16bitの2の補数の2進整数となるのが普通です。しかしこれだと表現出来る数値の範囲が-32768~+32767となってしまい、これが整数だよと言っても普通の人は困惑すると思います。浮動小数点の仮数24bitだとおそらく-16777215~+16777215が整数として使えて、まあ初代カシオミニくらいの計算能力は確保できます。ちなみにNEC PC-6001ではなぜか5バイトで仮数部は32bitでしょうから、かなり電卓の整数の感覚に近いと思います、がこれは流行しませんでした。

 CPUは8bitとか16bitの整数演算器ですから、当時のパソコンの浮動小数点演算はソフトで対応することとなり、かなり遅くなります。その気になってプログラムすると、それほど難しくは無いと言われていますが、100倍は行かなくても10倍くらいは時間がかかるような気がします。
 当時の大型機にはすでにハードの浮動小数点演算機構が付いていましたから、整数の代わりに単精度浮動小数点数を使っても、まあ数回動けば良いソフトならそれで良いか、でしょうけど、当時のパソコンはそうではない。それでもちょっとした計算ならあっという間ですから、Z80時代といえどもCPUは人間の想像を遥かに超えた高速演算機です。
 ちなみに現在のCPUは組み込み用マイコンにまでハードの浮動小数点演算機構が組み込まれています。もちろん機械の制御などに必要だから用意されています。

 逆に、単精度浮動小数点数の有効数字は10進7桁程度ですから、科学技術計算には少々心許ないです。なのでパソコンBASICにも倍精度浮動小数点(10進16桁程度)が用意されています。

 データ型としてはあと、文字列が使えます。と言っても0~255バイトの可変長で、長大な文章を1個の変数で保持することは出来ません。しかし、文字列型があるのと無いのとでは大違いで、ずっと便利になります。まあよく工夫されていること。

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする