2017-07-04 7 views
1

In C gibt es einen Typ namens long double, der auf meiner Maschine 16-Byte (128-Bit) ist. Gibt es eine Möglichkeit, eine long double in Swift zu speichern? Ich habe versucht, Aliase (typedef s) von long double aus einem Objective-C-Header, aber es erscheint nicht in Swift. Und Funktionen, die long double (powl, sqrtl) zurückgeben, erscheinen auch nicht.Lange Double in Swift

Ich weiß, es gibt eine Float80, aber das sind nur 80 Bits, nicht 128 Bits.

+0

Sind Sie sicher, ist 128Bits? Aus den offiziellen Dokumenten: ** long double ** - erweiterter Präzisions-Gleitkommatyp. Ordnet nicht unbedingt den Typen zu, die von IEEE-754 vorgeschrieben sind. ** Normalerweise 80-Bit ** x87 Gleitkommatyp auf x86- und x86-64-Architekturen. –

+0

Ja, 'sizeof (long double)' gibt '16' zurück. – SpilledMango

+0

Aber wie kann ich 'lange Doppel'-Funktionen in Swift verwenden? – SpilledMango

Antwort

4

Wenn Sie keinen POWER-Prozessor haben, ist Ihr 128-Bit-Double tatsächlich eine 80-Bit-Extended-Precision-Nummer, plus 48 Bit verschwendet.

Verwandte Themen