Ich habe einige Floats mit einfacher und doppelter Genauigkeit, die ich schreiben und von einem Byte [] lesen möchte. Gibt es irgendetwas in .Net, das ich verwenden kann, um sie zu und von ihren 32- und 64-Bit-IEEE-754-Darstellungen zu konvertieren?Wie bekomme ich die IEEE 754 binäre Darstellung eines Floats in C#
16
A
Antwort
30
.NET Single und Double sind bereits im IEEE-754-Format. Sie können BitConverter.ToSingle() und ToDouble() verwenden, um byte [] in Gleitkomma zu konvertieren, GetBytes(), um umgekehrt zu gehen.
5
Wenn Sie wollen keine neuen Arrays die ganze Zeit zuzuweisen (was GetBytes
der Fall ist), können Sie unsafe
Code verwenden, um einen Puffer direkt zu schreiben:
static void Main()
{
byte[] data = new byte[20];
GetBytes(0, data, 0);
GetBytes(123.45F, data, 4);
GetBytes(123.45D, data, 8);
}
static unsafe void GetBytes(float value, byte[] buffer, int offset)
{
fixed (byte* ptr = &buffer[offset])
{
float* typed = (float*)ptr;
*typed = value;
}
}
static unsafe void GetBytes(double value, byte[] buffer, int offset)
{
fixed (byte* ptr = &buffer[offset])
{
double* typed = (double*)ptr;
*typed = value;
}
}
Verwandte Themen
- 1. 754 IEEE Gleitkommadar-
- 2. Wie kann ich IEEE 754-Nummern subtrahieren?
- 3. Exakte textuelle Darstellung eines IEEE "double"
- 4. Klarstellung der Definitionen in IEEE 754
- 5. Invertierbarkeit der IEEE 754 Gleitkommadivision
- 6. Convert ieee 754 Schwimmer mit c verhexen - printf
- 7. Binäre Darstellung von Float in Python (Bits nicht Hex)
- 8. IEEE-754-konforme Round-half-to-even
- 9. Anzahl der Floats zwischen zwei Floats
- 10. Welche Sprachen erhalten IEEE 754 richtig?
- 11. Interpretieren eines 32bit unsigned long als Single Precision IEEE-754 Float in C
- 12. Binäre Darstellung eines .NET Dezimal
- 13. QF_FPA? Unterstützt Z3 IEEE-754-Arithmetik?
- 14. Wie zeige ich die Binärdarstellung eines Floats oder Double an?
- 15. Hexadezimale Darstellung von Floats in Haskell
- 16. Umwandlung eines uint8_t in seine binäre Darstellung
- 17. Binäre Darstellung einer Zahl in C
- 18. Wie kann ich in Perl vier Zeichen in einen 32-Bit IEEE-754 Float konvertieren?
- 19. IEE 754 Gesamtauftrag in Standard-C++ 11
- 20. Genetic Algorithm Binäre Darstellung
- 21. Wie kann ich die Zeichenfolgendarstellung eines Floats links-pad?
- 22. Intel-Architektur und IEEE 754-Konformität (minNum und maxNum)?
- 23. Wie bekomme ich binäre Daten in Django!
- 24. Welche IEEE-Standardeinstellungen verwendet SQLLite zum Speichern von REAL-Werten? Wird IEEE 754 doppelt verlustfrei gespeichert?
- 25. Konvertieren Sie eine Zeichenfolge mit einer Hexadezimaldarstellung eines IEEE-754-Double in JavaScript numerische
- 26. Decoding NumPy int64 binäre Darstellung
- 27. IEEE 754 Zahlen mit doppelter Genauigkeit von MIPS C zu Java-Konvertierung
- 28. Finding die kleinste ganze Zahl, die nicht als IEEE-754 32-Bit-Float
- 29. Wie die Wochentage binäre Darstellung und umgekehrt mit PHP konvertieren
- 30. AVR-Assembly: binäre Darstellung von RJMP erstellen
Wie können wir dies tun, ohne Verwendung von GetBytes(). Ich meine Forloops verwenden –
@SriramSatti siehe meine Antwort –