字节交换(Byte Swapping)
优质
小牛编辑
125浏览
2023-12-01
我们已经看到存储在计算机内存中的数据取决于CPU使用的体系结构。 它可能是little-endian(最低有效存储在最小地址中)或big-endian(最小地址中最高有效字节)。
numpy.ndarray.byteswap()
numpy.ndarray.byteswap()函数在两个表示之间切换:bigendian和little-endian。
import numpy as np
a = np.array([1, 256, 8755], dtype = np.int16)
print 'Our array is:'
print a
print 'Representation of data in memory in hexadecimal form:'
print map(hex,a)
# byteswap() function swaps in place by passing True parameter
print 'Applying byteswap() function:'
print a.byteswap(True)
print 'In hexadecimal form:'
print map(hex,a)
# We can see the bytes being swapped
它将产生以下输出 -
Our array is:
[1 256 8755]
Representation of data in memory in hexadecimal form:
['0x1', '0x100', '0x2233']
Applying byteswap() function:
[256 1 13090]
In hexadecimal form:
['0x100', '0x1', '0x3322']