前言导读
这节我们讲一讲字节交换的原理,为什么会出现字节交换这么一个概念呢?
其实呢,我们在日常的项目开发过程当中这个概念是一直存在的,只不过我们没有发现,因为底层代码已经帮我们进行了实现,因为编程时语言它应用于多平台,所以,字节交换是兼容的,我们不用考虑的问题。
所以字节交换是通常用于跨机器、跨平台处理数据时,确保数据的字节顺序正确。
NumPy库中已经将字节交换的函数进行封装完成,我们直接通过库调用字节交换函数就可以达到我们想要的结果。
numpy.ndarray.byteswap()的调用
概念: 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>