3 回答

TA貢獻1757條經(jīng)驗 獲得超8個贊
除了有缺陷的奔騰以外,任何基于x86或x64的CPU都使用IEEE 754作為其浮點運算標準。
這里是FPA標準及其采用的簡要概述。
IEEE 754: Intel x86, and all RISC systems (IBM Power
and PowerPC, Compaq/DEC Alpha, HP PA-RISC,
Motorola 68xxx and 88xxx, SGI (MIPS) R-xxxx,
Sun SPARC, and others);
VAX: Compaq/DEC
IBM S/390: IBM (however, in 1998, IBM added an IEEE 754
option to S/390)
Cray: X-MP, Y-MP, C-90; other Cray models have been
based on Alpha and SPARC processors with
IEEE-754 arithmetic.
除非您計劃在相當奇特的CPU體系結(jié)構(gòu)上支持庫,否則可以安全地假設(shè)目前有99%的CPU符合IEEE 754。

TA貢獻1853條經(jīng)驗 獲得超9個贊
PowerPC處理器(Macs直到2006-2007年才使用Mac,目前使用的IBM服務(wù)器數(shù)量很多)使用128位格式,其中包括兩個double表示long double,如果使用IEEE 754擴展格式,則采用這種格式。
但是,在C或Objective-C中,沒有可移植的方式將32位或64位浮點數(shù)解釋為整數(shù)(假設(shè)float和uint32_t或double和uint64_t具有相同的位數(shù))。當我需要做這種事情時,我不得不根據(jù)編譯器編寫不同的代碼(一個使用聯(lián)合,一個通過將double *轉(zhuǎn)換為long long *)。不知道用C ++重新解釋是否可以移植。
添加回答
舉報