¿Existe una opción para encontrar si mi sistema es un orden de bytes pequeño o un pedido de bytes big endian con Perl?Averiguar si el sistema es little endian o big endian con perl
11
A
Respuesta
20
perl -MConfig -e 'print "$Config{byteorder}\n";'
Ver Perl documentation.
4
Creo que se puede hacer:
$big_endian = pack("L", 1) eq pack("N", 1);
Esto puede fallar si el sistema dispone de un estándar (ni grande ni ascendente hacia la izquierda ascendente hacia la izquierda) el orden de bytes (por ejemplo PDP-11).
+0
Esa iba a ser mi sugerencia también. :) Excepto que usaría algo con más bits rellenos que solo el 1 binario. – Axeman
Cuestiones relacionadas
- 1. C# little endian o big endian?
- 2. Little endian Vs Big endian
- 3. Little/Big Endian
- 4. Big-endian vs. little-endian machines
- 5. Confusión en htons- little endian/big endian
- 6. ¿Cómo comprobar si un sistema es big endian o little endian?
- 7. Big endian o Little endian en la red?
- 8. Entero con signo Little-Endian
- 9. Convertir big endian a little endian al leer de un archivo binario
- 10. Node.JS Big-Endian UCS-2
- 11. ¿Hay alguna forma de compilar y ejecutar un programa como big-endian en little endian pc?
- 12. Forma rápida de intercambiar bytes en un array de big endian a little endian en C#
- 13. Conversión de los valores de flotación de big endian a little endian
- 14. Servidor SQL binario (128) convertir de little endian a big endian
- 15. Little endian data y sha 256
- 16. ¿Por qué es x86 little endian?
- 17. C# - Lector binario en Big Endian?
- 18. ¿Entonces en x86-64 es Big Endian?
- 19. (java) Escribiendo en el archivo little endian
- 20. C# Big-endian ulong de 4 bytes
- 21. ¿Cómo convierto una estructura big-endian en una pequeña estructura endian?
- 22. 64 Bit "red" (big-endian) Entero orden en Perl
- 23. descodificación, little endian, descomprimido y matriz flotante
- 24. BinaryWriter Endian problema
- 25. ¿Imitar/emular un comportamiento big-endian en C?
- 26. IsLittleEndian reportes de campo falso, pero debe ser Little-Endian?
- 27. ¿Cómo obtener datos pequeños de endian de big endian en C# usando el método bitConverter.ToInt32?
- 28. ¿Se requiere conversión endian para datos wchar_t?
- 29. Porque son las dos poco- y big-endian en uso?
- 30. Convertir cadena hexadecimal "little endian" a dirección IP en Python
+1 Esta es claramente la forma "correcta" de hacerlo. La otra forma es (aunque intuitiva) simplemente hacky. :-P –
Es cierto, aunque para obtener una respuesta booleana a la pregunta "¿este sistema es grande/poco endian?" necesitaría hacer más análisis sobre el valor devuelto por el módulo de configuración. – Sean
@Sean: el problema es que (como lo señala la documentación referenciada), la respuesta no es binaria; también hay un orden 'extraño' (en teoría) para máquinas como PDP-11 que usan '3412' como orden de bytes - que no es ni big-endian ni little-endian. Si el primer byte es 1, puede suponer (con moderada seguridad) que es poco endian; si es 4 u 8, puedes asumir big endian; y si no es ninguno de estos, entonces tal vez es hora de obtener una máquina más nueva. –