Gibt es eine Option zu finden, wenn mein System ist kleine Endian Byte-Reihenfolge oder Big Endian Byte-Reihenfolge mit Perl?Finden, ob das System Little Endian oder Big Endian mit Perl ist
11
A
Antwort
20
perl -MConfig -e 'print "$Config{byteorder}\n";'
Siehe Perl documentation.
4
Ich denke, Sie tun könnten:
$big_endian = pack("L", 1) eq pack("N", 1);
Dies könnte fehlschlagen, wenn das System mit einem Nicht-Standard (weder Big-Endian noch Little-Endian) Bytereihenfolge hat (zB PDP-11).
+0
Das sollte auch mein Vorschlag sein. :) Außer ich würde etwas mit mehr Bits als nur Binär 1 verwenden. – Axeman
Verwandte Themen
- 1. Big Endian vs Little Endian
- 2. C# Little Endian oder Big Endian?
- 3. Big Endian oder Little Endian im Netz?
- 4. Little/Big Endian
- 5. Verwendet meine AMD-basierte Maschine Little Endian oder Big Endian?
- 6. Bitshifting auf Little-Endian und Big-Endian
- 7. Big Endian und Little Endian Unterstützung für Byte Ordering
- 8. Bitweises Vorgehen bei Big-Endian- und Little-Endian-Differenzen
- 9. Wird ein char-Array in Ordnung in einem Little-Endian oder Big-Endian-System unterscheidet
- 10. Little und Big Endian in Java (Android)
- 11. Java Little Endian Auftrag
- 12. Bitwise Not Operator (~ in C) in Bezug auf Little Endian und Big Endian
- 13. Was macht htons() auf einem Big-Endian-System?
- 14. SQL Int zu Hex-Konvertierung Little/Big-Endian-Format
- 15. Muss ich mich um Big Endian und Little Endian kümmern, wenn ich Daten über AudioInputStream lese?
- 16. Der Header der WAV-Audiodatei enthält Datenfiles vom Big-Endian- und Little-Endian-Typ, warum?
- 17. Schnelle Möglichkeit, Bytes in Array von Big Endian zu Little Endian in C auszutauschen #
- 18. SQL Server binäre (128) konvertieren von Little Endian zu Big Endian
- 19. C# Big-Endian ulong von 4 Bytes
- 20. Beste Vorgehensweise zum Schreiben/Lesen von Binärdaten in Little oder Big Endian mit C#?
- 21. Wie Little-Endian PODs schmerzfrei zu serialisieren?
- 22. Little-Endian Hex in GHKit Diagnose, warum?
- 23. Stack-Überlauf: Rücksendeadresse in Little-Endian
- 24. 64 Bit "Netzwerk" (Big-Endian) Integer, um in Perl
- 25. BinaryWriter Endian-Problem
- 26. Wie liest man rohe Dateien in generischer Weise (Little/Big Endian)?
- 27. Wie wird dieser Code unter Verwendung von Little Endian verwendet?
- 28. Konvertieren der Nummer in Big Endian auf Knoten js
- 29. Ist die Bytereihenfolge von UTF-8 nicht auf Big-Endian-Maschinen anders als auf Little-Endian-Maschinen? Warum benötigt UTF-8 dann keine Stückliste?
- 30. PDP Endian und Bitverschiebungen
+1 Dies ist eindeutig der "richtige" Weg, dies zu tun. Der andere Weg ist (obwohl intuitiv) nur hacky. :-P –
Richtig, obwohl man eine boolsche Antwort auf die Frage "Ist das System groß/little-endian?" Sie müssen weitere Analysen zu dem vom Konfigurationsmodul zurückgegebenen Wert durchführen. – Sean
@Sean: Das Problem ist (wie die referenzierte Dokumentation zeigt), die Antwort ist nicht binär - es gibt auch eine "seltsame" Ordnung (in der Theorie) für Maschinen wie PDP-11, die '3412' als Byte-Reihenfolge verwenden - Das ist weder Big-Endian noch Little-Endian. Wenn das erste Byte 1 ist, können Sie (mit mäßiger Sicherheit) annehmen, dass es Little Endian ist; Wenn es 4 oder 8 ist, können Sie Big Endian annehmen; und wenn es keiner von diesen ist, dann ist es vielleicht Zeit, eine neuere Maschine zu bekommen. –