Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- lo = value % 256
- hi = value // 256
- value == hi * 256 + lo # всегда должно быть верно
- rev_value = lo * 256 + hi # то, что хотим по условию, поменяли байты
- rev_bytes = lambda v: v % 256 * 256 + v // 256
- rev_bytes = lambda v: ((v % 256) << 8) | (v >> 8)
- NewArray = list(map(lambda v: ((v % 256) << 8) | (v >> 8), MyArray))
- def reverse(input):
- L = len(input)
- if L%2 <> 0:
- return 'Error' #Ошибка в случае когда L не кратно 2
- else:
- Res = ''
- L = L//2
- for i in range(L):
- T = input[i*2] + input[i*2+1]
- Res = T + Res
- T = ''
- return(Res);
- ArrLength = len(Arr)
- for i in range(ArrLength):
- Arr[i] = reverse(Arr[i])
- >>> import array
- >>> a = array.array('h', [1, 32767])
- >>> a.tobytes()
- b'x01x00xffx7f'
- >>> a.byteswap()
- >>> a.tobytes()
- b'x00x01x7fxff'
- >>> a
- array('h', [256, -129])
- >>> import sys
- >>> 1 .to_bytes(2, sys.byteorder)
- b'x01x00' # от "младшего к старшему"
- >>> 1 .to_bytes(2, 'big')
- b'x00x01' # "от старшего к младшему"
- >>> int.from_bytes(_, 'little') # интепретируя как от "младшего к старшему"
- 256
- >>> import numpy
- >>> a = numpy.array([1, 32767], dtype='h')
- >>> a
- array([ 1, 32767], dtype=int16)
- >>> a.tobytes()
- b'x01x00xffx7f'
- >>> a.byteswap(True) # inplace
- array([ 256, -129], dtype=int16)
- >>> a.tobytes()
- b'x00x01x7fxff'
- SUM(for i=0 through abs(ob_size)-1) ob_digit[i] * 2**(SHIFT*i)
- from struct import pack, unpack
- def reorder_bytes( value ):
- return unpack( "H", pack( "H", value )[::-1] )[0]
- # модуль struct используется для конвертации С структур в python объекты
- # H --- unsigned int16
- # pack с "H" сконвертирует python int в бинарную строку длиной в 2 байта, соответствующую Си представление unsigned int16
- # unpack возвращает tuple из распакованных данных, нужный нам результат будет в первом элементе.
Add Comment
Please, Sign In to add comment