English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

NumPy 바이트 스왑

대단모드:데이터의 고바이트는 메모리의 저주소에 저장되고, 데이터의 저바이트는 메모리의 고주소에 저장되며, 이러한 저장모드는 데이터를 문자열 순서로 처리하는 것과 유사합니다: 주소는 작은 숫자에서 큰 숫자로 증가하고, 데이터는 고비트에서 저비트로 배치됩니다. 이는 우리의 읽기 습관과 일치합니다.

소단모드:데이터의 고바이트는 메모리의 고주소에 저장되고, 데이터의 저바이트는 메모리의 저주소에 저장되며, 이러한 저장모드는 주소의 높낮이와 데이터 비트 권을 효과적으로 결합시킵니다. 고주소 부분의 권치는 높고, 저주소 부분의 권치는 낮습니다.

예를 들어 C 언어에서 int 타입의 변수 x의 주소는 0x100에 저장됩니다. 따라서 &x에 대한 해당 주소 표현식의 값은 0x100. 그리고 x의 네 바이트는 메모리 0x100, 0x101, 0x102, 0x103위치.

numpy.ndarray.byteswap()

numpy.ndarray.byteswap() 함수는 ndarray 내 각 요소의 바이트를 크기 순서 변환합니다.

 import numpy as np 
 a = np.array([1, 256, 8755], dtype = np.int16) 
 print ('귀하의 배열은:')
 print (a)
 print ('메모리 내 데이터를 16진수로 표시:')
 print (map(hex,a))
 # byteswap() 함수는 True를 전달하여 원지에서 스왑됩니다. 
 print ('byteswap() 함수 호출:')
 print (a.byteswap(True))
 print ('16진 형식:')
 print (map(hex,a))
 # byte를 스왑할 수 있습니다.
 귀하의 배열은:
 [ 1 256 8755]
 메모리 내 데이터를 16진수로 표시:
 <map object at 0x104acb400>
 byteswap() 함수 호출:
 [ 256 1 13090]
 16진 형식:
 <map object at 0x104acb3c8>