これは非常に興味深い質問です。おそらく、pythonやコンピューティングやハードウェアに関連する理由があります。完全な答えを出すつもりはありませんが、ここに私が向かっていくものがあります。
最初に、タイプは言語によって定義され、ハードウェアアーキテクチャと異なる場合があります。たとえば、8ビットのプロセッサで2倍にすることもできます。もちろん、どの算術も複数のCPU命令を含んでいるため、計算が非常に遅くなります。それでも、あなたのアプリケーションがそれを必要とするならば、それは価値があるかもしれませんし、必要でさえあるかもしれません(間違ったより遅い方がいい、特にブリッジの安定性のためにシミュレーションを実行していると言えば...)。ここにwikipedia articleがあります...
もう1つ興味深いのは、コンピュータが64ビットと言うとき、これはハードウェアを完全には説明していないということです。 CPUの計算レジスタ、メモリ・アドレッシング・スキーム/メモリ・レジスタ、およびCPUからメモリへのバスを最も重要とするさまざまなバスが、それぞれ異なったビット(それぞれ少なくとも時々ある)であることがあります。
- ALU(算術論理装置)には計算を行うレジスタがあります。あなたのマシンは64ビットです(同様の時間に2つの32ビット計算を行うことができるかどうかは分かりません)。これは明らかにこの議論の最も関連する量です。あなたが外に出て、より高い精度の計算のためにそれをスピードアップするためにco-processorを買うことが以前のケースでした...
- コンピュータが(直接的に)見ることができるメモリを制限するレジスタは、そのため、32ビットのメモリレジスタを持つコンピュータでは2^32バイト(または約4 GB)しか見ることができませんでした.16ビットの場合、これは65Kと非常に低くなります。 OSはこの制限を回避する方法を見つけることができますが、1つのプログラムではできません。したがって、32ビットコンピュータのプログラムでは通常4GB以上のメモリがありません。
これらの制限は、ビットではなく、約バイトであることに注意してください。これは、メモリから参照およびロードするときにバイトをロードするためです。実際、これが行われる方法は、バイト(8ビット)または8(64ビット==バスの長さ)を読み込むのと同じ時間がかかります。私は住所を尋ね、バスを通ってすべてのビットを一度に取得します。 アーキテクチャでは、これらの量はすべて同じビット数ではありません。
出典
2016-09-30 09:20:47
ntg
私はあなたがどんな '32 * N 'または理論的には、' 64 * N'精度をうまくできると思いますが、私はそれらのタイプについてのみ実施されていることを言わなければなりませんテストでは興味深いです。 –
'np.float128'は通常128ビットの精度を持たないことに注意してください。これはCの' long double'に相当します。通常、x86では80ビットです([こちらをご覧ください](http:// stackoverflow。 com/q/9062562/1461210))。 –
@ali_m参照してください。私は今日何か新しいことを学びました! – gerrit