我有一個64位的Linux系統。我使用gfortran編譯並運行我的Fortran代碼,並輸出一些數字以達到雙精度,即〜16位小數。例如運行64位計算機的128位Fortran計算
gfortran some_code.f -o executable1
./executable1
10.1234567898765432
如果我現在用標誌-fdefault-real-8編譯,所述的Fortran雙精度型提升爲16個字節= 128位和一定數目的輸出,但更高的精度〜33位小數。例如
gfortran -fdefault-real-8 some_code.f -o executable2
./executable2
10.12345678987654321234567898765432
我的問題是:怎麼能這樣計算已經完成,以這樣的高精度,如果我的電腦是唯一的64位?
這是所有(可能)軟件。你甚至可以有更高的精度(數百萬比特)。這一切都取決於正在使用的軟件/算法。精度越高,過程越慢,儘管許多可能的技巧和算法可以加快速度。 CPU是64位的事實與此無關。這也可以在32位或16位處理器上完成。 –
如果可能,雙精度提升爲128位*。更有可能的是,它在x86等典型現代硬件上仍將保持64位。 – Netch