English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Großes Endian-Modell:Die hohen Bytes der Daten werden im niedrigen Adressbereich des Speichers gespeichert, während die niedrigen Bytes im hohen Adressbereich gespeichert werden. Dieses Speichermodell ähnelt etwas dem sequenziellen Verarbeiten von Daten als Zeichenfolgen: Die Adresse steigt von klein nach groß, und die Daten werden von hoch nach niedrig gestellt; das entspricht unserem Lesegewohnheiten.
Kleines Endian-Modell:Die hohen Bytes der Daten werden im hohen Adressbereich des Speichers gespeichert, während die niedrigen Bytes im niedrigen Adressbereich gespeichert werden. Dieses Speichermodell kombiniert die Höhen und Tiefen der Adressen mit der Bitgewichtung der Daten effizient. Der Teil mit hoher Adresse hat einen höheren Wert, während der Teil mit niedriger Adresse einen niedrigeren Wert hat.
例如在 C 语言中,一个类型为 int 的变量 x 地址为 0x100,那么其对应地址表达式&x的值为 0x100。且x的四个字节将被存储在存储器的 0x100, 0x101, 0x102, 0x103位置。
numpy.ndarray.byteswap() 函数将 ndarray 中每个元素中的字节进行大小端转换。
import numpy as np a = np.array([1, 256, 8755], dtype = np.int16) print ('我们的数组是:') print (a) print ('以十六进制表示内存中的数据:') print (map(hex,a)) # byteswap() 函数通过传入 True 来原地交换 print ('调用 byteswap() 函数:') print (a.byteswap(True)) print ('十六进制形式:') print (map(hex,a)) # 我们可以看到字节已经交换了
我们的数组是: [ 1 256 8755] 以十六进制表示内存中的数据: <map object at 0x104acb400> 调用 byteswap() 函数: [ 256 1 13090] 十六进制形式: <map object at 0x104acb3c8>