Guest User

Untitled

a guest
Jan 19th, 2017
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.15 KB | None | 0 0
  1. lo = value % 256
  2. hi = value // 256
  3.  
  4. value == hi * 256 + lo # всегда должно быть верно
  5. rev_value = lo * 256 + hi # то, что хотим по условию, поменяли байты
  6.  
  7. rev_bytes = lambda v: v % 256 * 256 + v // 256
  8.  
  9. rev_bytes = lambda v: ((v % 256) << 8) | (v >> 8)
  10.  
  11. NewArray = list(map(lambda v: ((v % 256) << 8) | (v >> 8), MyArray))
  12.  
  13. def reverse(input):
  14. L = len(input)
  15. if L%2 <> 0:
  16. return 'Error' #Ошибка в случае когда L не кратно 2
  17. else:
  18. Res = ''
  19. L = L//2
  20. for i in range(L):
  21. T = input[i*2] + input[i*2+1]
  22. Res = T + Res
  23. T = ''
  24. return(Res);
  25.  
  26. ArrLength = len(Arr)
  27. for i in range(ArrLength):
  28. Arr[i] = reverse(Arr[i])
  29.  
  30. >>> import array
  31. >>> a = array.array('h', [1, 32767])
  32. >>> a.tobytes()
  33. b'x01x00xffx7f'
  34. >>> a.byteswap()
  35. >>> a.tobytes()
  36. b'x00x01x7fxff'
  37. >>> a
  38. array('h', [256, -129])
  39.  
  40. >>> import sys
  41. >>> 1 .to_bytes(2, sys.byteorder)
  42. b'x01x00' # от "младшего к старшему"
  43. >>> 1 .to_bytes(2, 'big')
  44. b'x00x01' # "от старшего к младшему"
  45. >>> int.from_bytes(_, 'little') # интепретируя как от "младшего к старшему"
  46. 256
  47.  
  48. >>> import numpy
  49. >>> a = numpy.array([1, 32767], dtype='h')
  50. >>> a
  51. array([ 1, 32767], dtype=int16)
  52. >>> a.tobytes()
  53. b'x01x00xffx7f'
  54. >>> a.byteswap(True) # inplace
  55. array([ 256, -129], dtype=int16)
  56. >>> a.tobytes()
  57. b'x00x01x7fxff'
  58.  
  59. SUM(for i=0 through abs(ob_size)-1) ob_digit[i] * 2**(SHIFT*i)
  60.  
  61. from struct import pack, unpack
  62.  
  63. def reorder_bytes( value ):
  64. return unpack( "H", pack( "H", value )[::-1] )[0]
  65.  
  66.  
  67. # модуль struct используется для конвертации С структур в python объекты
  68. # H --- unsigned int16
  69. # pack с "H" сконвертирует python int в бинарную строку длиной в 2 байта, соответствующую Си представление unsigned int16
  70. # unpack возвращает tuple из распакованных данных, нужный нам результат будет в первом элементе.
Add Comment
Please, Sign In to add comment