English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Modo big-endian:O byte mais alto dos dados é armazenado no endereço mais baixo da memória, enquanto o byte mais baixo dos dados é armazenado no endereço mais alto da memória. Este padrão de armazenamento é um pouco semelhante a tratar os dados como uma string em ordem: o endereço aumenta de baixo para cima, enquanto os dados são colocados de alto para baixo; isso coincide com nosso hábito de leitura.
Modo little-endian:O byte mais alto dos dados é armazenado no endereço mais alto da memória, enquanto o byte mais baixo dos dados é armazenado no endereço mais baixo da memória. Este padrão de armazenamento combina eficazmente o nível do endereço com o valor da posição de bits, onde a parte do endereço mais alta tem um valor mais alto e a parte do endereço mais baixa tem um valor mais baixo.
Por exemplo, em linguagem C, uma variável do tipo int x com endereço 0x100, então a expressão de endereço &x é 0x100. E os quatro bytes de x serão armazenados no endereço 0x100, 0x101, 0x102, 0x103Posição.
A função numpy.ndarray.byteswap() converte os bytes de cada elemento do ndarray para big-endian e little-endian.
import numpy as np a = np.array([1, 256, 8755], dtype = np.int16) print('Nosso array é: ') print(a) print('Representação hexadecimal dos dados na memória: ') print(map(hex, a)) # A função byteswap() troca localmente os bytes ao passar True print('Chamada da função byteswap():') print(a.byteswap(True)) print('Forma hexadecimal: ') print(map(hex, a)) # Podemos ver que os bytes foram trocados
Nosso array é: [ 1 256 8755] Representação hexadecimal dos dados na memória: <map object at 0x104acb400> Chamada da função byteswap(): [ 256 1 13090] Forma hexadecimal: <map object at 0x104acb3c8>