python numpy字节交换

numpy 字节交换

大端模式  地址由小向大增加,而数据从高位往低位放

小端模式  数据的高字节保存在高地址中,而数据的低字节保存在低地址中

大端模式:
低地址--------->高地址
0x12  0x34  0x56  0x78
高字节--------->低字节

小端模式:
低地址--------->高地址
0x78  0x56  0x34  0x12
低字节--------->高字节

设置字节顺序

array.dtype.byteorder()  只能查询,不能赋值。  ‘=’‘+’表示小端模式,‘>’表示大端模式

例子:

a = np.array([1,2,3,4],dtype='<i2')

a = np.array([1,2,3,4],dtype='=i2')

a = np.array([1,2,3,4],dtype='i2')   #设置为小端模式

a = np.array([1,2,3,4],dtype='>i2')  #设置为大端模式

完整例子:

a = np.array([1,2,3,4],dtype='>i2')  #设置为大端模式

print(a.dtype.byteorder('>'))

a

array([256,512,765,1024],dtype=int16)

# 此时由于字节顺序改变,即计算机的阅读方法发生改变
# 如 1 由小端模式写入,在计算机的内存中为 00000001 00000000
# 计算机理解低位为 00000001 ,高位为 00000000 ,所以读取为 1
# 在给为大端模式后,内存中依然为 00000001 00000000
# 计算机理解高位为 00000001 ,低位为 00000000 ,所以读取为 256

字节交换  ndarray.byteswap(true)

交换字节在内存中的顺序,将高地址交换到低地址,把低地址交换到高地址

x = np.array([1,2,3,4],dtype='i2')

print(x.byteswap(True))

>>>array([256,512,768,1024],dtype=int16)

#实现字节交换,但是字节顺序不变

#如1由原来的00000001  00000000 变为 00000000  00000001

#计算机阅读方式不变,所以读取为256

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值