English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Modalità big-endian:Indica che il byte più alto dei dati è conservato all'indirizzo più basso della memoria, mentre il byte più basso è conservato all'indirizzo più alto. Questo modello di archiviazione è simile a trattare i dati come una stringa in ordine: l'indirizzo aumenta da piccolo a grande, e i dati vengono posizionati da alto a basso; questo è conforme alla nostra abitudine di lettura.
Modalità little-endian:Indica che il byte più alto dei dati è conservato all'indirizzo più alto della memoria, mentre il byte più basso è conservato all'indirizzo più basso. Questo modello di archiviazione combina efficacemente l'indirizzo e il valore di bit del dato, dove la parte alta dell'indirizzo ha un valore più alto e la parte bassa dell'indirizzo ha un valore più basso.
Ad esempio, in C, un variabile di tipo int con indirizzo 0x100, il valore dell'espressione di indirizzo &x è 0x100. E i quattro byte di x vengono memorizzati nei posizioni di memoria 0x100, 0x101, 0x102, 0x103.
La funzione numpy.ndarray.byteswap() esegue la conversione di big-endian a little-endian per ogni elemento dell'ndarray.
import numpy as np a = np.array([1, 256, 8755], dtype=np.int16) print('Il nostro array è:') print(a) print('Dati nella memoria rappresentati in esadecimale:') print(map(hex, a)) # La funzione byteswap() scambia in loco i byte passando True print('Chiamata alla funzione byteswap():') print(a.byteswap(True)) print('Forma esadecimale:') print(map(hex, a)) # Vediamo che i byte sono stati scambiati
Il nostro array è: [ 1 256 8755] Dati nella memoria rappresentati in esadecimale: <map oggetto at 0x104acb400> Chiamata alla funzione byteswap(): [ 256 1 13090] Forma esadecimale: <map oggetto at 0x104acb3c8>