広く採用されている標準規格)IBM方式(IBMのメインフレームおよびそれを模倣した各社の互換マシンで使われていた。指数部を基数16で表現するのが特徴)指数部と仮数部を可変とする方式(これは研究用の面が強い。ビットで表現されている。各部は次のように定義されている。‐16383×(1+仮数部)である。形式の指数部は複雑で、以下のような役割も持つ。求めるとNaNになる。754の基数は、2で固定(簡単のため、以下では省略)指数は、0であることから、まず次のように考える。(-1)0×2.5×20仮数部は1未満でなければならないため、仮数の値2.5を(この例では右へ)シフトし正規化する。基数は2、コンピュータの内部表現は2進法であるため、シフト量は1ビットである。右シフトして1⁄2になったことを相殺するため、指数に1を加える(もし左シフトなら、指数から1を引く)。値をシフトすることで表現範囲を広げ、丸め誤差を少なくなるようにしている。この操作を正規化という。正規化は基数の±1乗を繰り返し求めればよい。決められているため、次のようになる。形式に基づく浮動小数点数の形式。×(1+仮数部)である。754を使用するよう改めた)。指数部が2の冪ではなく16の冪を表すという特徴がある。この方式は、より大きな範囲を少ないビット数の指数部で表すことができ、そのぶんのビットを仮数部の桁数に使うことで精度も確保できるように一見思える。仮数部にケチ表現を使うことができず、さらに指数部の変化の前後で、仮数部のLSBが表現する値の刻み幅が16倍変化するため、2べきの場合に比べて最悪の場合には2進で3ビット分の精度が損なわれるため、一般には大成功であったと評されたSystem/360の設計において良くなかった点の一つとして挙げられる。(浮動小数点数の加減算の際に必要となる仮数部のシフトが4ビット単位となるのでシフト回数が減ることで演算が15%[要出典]程度高速になる利点も16進数が採用された理由であった。7094(全部で36ビット)よりも桁数を減らした(32ビット)ことと相まって精度が大きく損なわれた。その他にも問題があり、ユーザグループであるSHAREから改善提案が出され、その多くを受け入れて多大なコストのかかる改修をおこなったほどであり、これを記憶しているIBMの古参社員は「身の縮む思い」をおぼえているという[2]。計算対象の数値がベンフォードの法則に従って分布していた場合、計算対象として精度の低い数(仮数部の最上位4ビットが0b0001)の現れる確率は1/15にはならず、もっと高い[3]。符号部1ビット、指数部7ビット、仮数部24ビットで表現されている。各部は次のように定義されている。符号部は、0を正、1を負とする仮数部は、1未満の16進小数とする指数部は、16を基数とした指数に64をバイアスした値で表す符号部は仮数の符号を表す。指数部は-1663~-16-64と16-64~1663の範囲が表現できる。IBM方式で表現するまでの過程[編集]1.5を単精度のIBM方式で表現するには、次のようになる。(-1)0×1.5×160仮数部は1未満でなければならないため、値を(この例では右へ)シフトする。加えて正規化し、その結果は次の通り。(-1)0×0.09375×161次に指数部を、64をバイアスしたゲタ履き表現(エクセス64)で表現する。よって、今回の例では以下のようになる。000110000000000000000000、16進値:41180000指数部と仮数部を可変とする方式[編集]任意精度演算と、従来の指数部と仮数部を共に固定長とする形式の中庸と言えるような方式が、いくつか提案されている。絶対値が1に近い値では指数部の桁数を短くし、仮数部の桁数を多くとって、よく使われる値を精度よく表現する。絶対値が極端に大きい値や小さい値には、精度とひきかえに指数部の桁数を増やすことで対応する。methodをうまく扱えたという例が示されている。松井・伊理の表現法[編集]松井正一と伊理正夫が提案した方式で、符号と絶対値による表現法である。彼らは、オーバーフローを起こさせないための、より大きい数やより小さい数の表現や、無限大などの例外的な値を含めた算術(IEEE標準の±∞や-0の扱いに似ているが、より拡張されている)も提案しているが、ここでは割愛する。numbersの意でURRと名付けられている[7]。区間を、次のように分割しながら、二進法による表現に対応付ける、というのが基本的な考え方で、「符号と絶対値」形ではなく、浮動小数点の表現としては比較的珍しい2の補数の形をしている。∞ここで±1の前後は、区間の両端の比が2なので、指数部の表現は終わったとみなすことができ、残りの桁は仮数部のように扱う(±1の前後は、以後は1/2で等差分割する)。次のように分割を続ける。区間に絞って説明する。含む区間は「二重指数分割」する。∞このように、区間の両端の比が2より大きい場合は、「等比分割」する。以上のような操作の結果として、表現が自然に自分の長さを含むような指数部と、残りの仮数部から成る、と見ることができるような表現が得られる。利点として、単精度と倍精度、さらには4倍精度との相互変換が、この方式では単に右にビットを伸ばしたり切り落としたりするだけで良い、という点が挙げられる。1の近くでは桁数のほとんどが仮数部となるので精度が高い。欠点としては、精度が変化するため従来の精度一定を前提としたノウハウに修正が必要かもしれない、-∞を除くワードのあらゆるビット表現に浮動小数点数としての意味が与えられるため、例外的な値を表現する方法を別に考えなければいけない、などといった点がある。浜田は1000...を符号なしの∞(射影モード[8]用。符号なしの0と対応する)とし、表現可能な最大と最小の絶対値を持つ値を、具体的にその値を表すのではなく±∞と±0を表現するものとする(0は、通常の0を符号なしの0とし、符号付きの+0や-0は、無限大で割った結果など例外的な値としてのみ現れる)、という方法を提案している。この表現法の初出は1981年だが[9]、1983年に改良版が提案されている[10]のでそちらをまずは参照すべきである。[11]いくつかの実装の報告[12][13]や改良の提案[14][15][16][17][18][19]などがある。演算結果が指数部で表現できる範囲を超える場合があるが、最大値を超えた場合はオーバーフロー、絶対値の最小より小さい場合はアンダーフローという。754の場合、アンダーフローは、まず結果が非正規化数となり精度が低下し、さらに進むと結果が0になる。桁落ち絶対値がほぼ等しい異符号の数値同士の加算後や、同符号でほぼ等しい数値同士の減算の後、正規化で有効数字が減少すること。情報落ち浮動小数点数値を加減算するときはまず指数を揃えなければならない。絶対値の非常に小さな値と絶対値の非常に大きな値との浮動小数点数の加減算を行うときは、まず指数を絶対値の大きい方に揃える桁合わせを行ない、それから加減算を行なう。そのため絶対値の小さな値は仮数部が右側に多くシフトされて下位の桁の部分が反映されずに結果の値が丸められて情報が欠落する。詳細は情報落ちを参照。積み残し情報落ちが繰り返し起こる場合を言う。初項からn=100に向かって順番に加えて計算しようとすると、ある項から先で情報落ちが起こり、それ以降の項は無視されてしまうことになる。これを積み残しと呼ぶ。値の小さい項から大きい項に向かって加算をする(この例では逆順に加算をする)ことで対処できる場合もある(必ずしもそうすれば全て完全にうまくいくとは限らない)。対処としては、有理数演算などによって無誤差の計算を行うか、カハンのsummationアルゴリズムなどいくつかの効率的な手法が提案されている。仮数部の桁数が有限であるため、収まらない部分の最上位桁で四捨五入(2進法では0捨1入)して仮数部の桁数に丸めることによる誤差。ディジタル信号処理[編集]32bit-floatの場合には156[dB]、64bit-floatの場合には331[dB]もの広いダイナミックレンジを確保できる。この広いダイナミックレンジで計算を行うことで、整数型のデータに変換して信号を出力する際に内部計算において累積した誤差を切り捨てることにより、出力データの精度の範囲内においては内部計算の誤差が現れないように処理を行うことが可能となる。製品に収録する音声信号フォーマットに直す直前まで波形がクリップせず音声加工処理を行えるメリットが有るため、2000年代以降はDTMやDAWにおいては全ての処理工程で浮動小数点数を用いている。従来よりDSPや音楽用ワークステーション等では、精度と計算コストの兼ね合いから32bit-floatが内部計算において標準的に用いられてきたが、2010年代以降はコンピュータの高性能化と低価格化を受けて、より高精度な64bit-floatで内部計算を行う場合が増えて来ている。浮動小数点数を表現するための仮数部の桁数の関係で、32bit-integerよりも32bit-floatの方が量子化ノイズが大きい。従って、最終的に32bit-integerのデータを作成する場合には、内部計算においては64bit-float以上の精度を持つ浮動小数点数を用いるべきである。System/360のちょうど30年後である。mode、射影幾何における無限遠点のような、符号の付かない1点のみの無限大の値が実数に加わった(射影拡張実数)モード、拡大実数を参照。754の検討段階では議論されたが、最終的な標準ではオミットされアフィンモードのみになった。型システムカテゴリこの項目は、コンピュータに関連した書きかけの項目です。この項目を加筆・訂正などしてくださる協力者を求めています(PJ:コンピュータ/P:コンピュータ)。昌泰4年1月25日)ロシア:ミハイル・ロマノフがツァーリに即位。