English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Modo de big-endian:El byte más alto de los datos se almacena en la dirección baja de la memoria, mientras que el byte más bajo se almacena en la dirección alta de la memoria, este modo de almacenamiento es algo similar a tratar los datos como una cadena en orden: la dirección aumenta desde el pequeño hacia el grande, y los datos se colocan desde el alto hacia el bajo; esto coincide con nuestro hábito de lectura.
Modo de little-endian:El byte más alto de los datos se almacena en la dirección alta de la memoria, mientras que el byte más bajo se almacena en la dirección baja de la memoria, este modo de almacenamiento combina efectivamente la altitud de la dirección y el valor de los bits de datos, donde la parte alta de la dirección tiene un valor alto y la parte baja de la dirección tiene un valor bajo.
Por ejemplo, en el lenguaje C, una variable de tipo int x con dirección de 0x100, entonces la expresión de dirección correspondiente a &x es 0x100. Y los cuatro bytes de x se almacenarán en la memoria en 0x100, 0x101, 0x102, 0x103Posición.
La función numpy.ndarray.byteswap() realiza la conversión de endianness de bytes en cada elemento del ndarray.
import numpy as np a = np.array([1, 256, 8755], dtype = np.int16) print('Nuestro array es: ') print(a) print('Representación en hexadecimal de los datos en memoria: ') print(map(hex, a)) # La función byteswap() intercambia en el lugar al pasar True print('Llamar a la función byteswap(): ') print(a.byteswap(True)) print('Forma hexadecimal: ') print(map(hex, a)) # Podemos ver que los bytes han sido intercambiados
Nuestro array es: [ 1 256 8755] Representación en hexadecimal de los datos en memoria: <map object at 0x104acb400> Llamar a la función byteswap(): [ 256 1 13090] Forma hexadecimal: <map object at 0x104acb3c8>