3 回答

TA貢獻1804條經驗 獲得超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體系結構上支持庫,否則可以安全地假設目前有99%的CPU符合IEEE 754。

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