私はc/c ++でいくつかのコースを受講しましたが、int型のサイズはCPUアーキテクチャによって制限されていることを理解しています。
32ビットの場合、intの最大値は2^32
(4,294,967,295
)ですが、電卓やExcelを使用すると、膨大な数になり、。よりも大きくなり2^32
ます。
私は、このプログラムが2^23の値よりも大きな値をどのように出力するかについてこの詳細を本当に理解していません。
私はc/c ++でいくつかのコースを受講しましたが、int型のサイズはCPUアーキテクチャによって制限されていることを理解しています。
32ビットの場合、intの最大値は2^32
(4,294,967,295
)ですが、電卓やExcelを使用すると、膨大な数になり、。よりも大きくなり2^32
ます。
私は、このプログラムが2^23の値よりも大きな値をどのように出力するかについてこの詳細を本当に理解していません。
32 ビット システムでは、32 ビットより大きい値を引き続き使用できます。実際、任意の大きな整数を使用できるBIGINT ライブラリ ( GMPなど) があります。これらの大きな数は、ハードウェアではなくソフトウェアで処理する必要があります。
[x86 固有の例] 単純な 32 ビットadd
加算で 2 つの 32 ビット レジスタを加算する命令を使用する場合、64 ビットまたは BIGINT 加算では、数値を一度に 32 ビットずつ加算する必要があり、1つのレジスタからキャリーを手動で伝播します。次への追加。
以下も参照してください。