Advertisement
Guest User

Untitled

a guest
Jan 18th, 2017
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.25 KB | None | 0 0
  1. def reverse(input):
  2. L = len(input)
  3. if L%2 <> 0:
  4. return 'Error' #Ошибка в случае когда L не кратно 2
  5. else:
  6. Res = ''
  7. L = L//2
  8. for i in range(L):
  9. T = input[i*2] + input[i*2+1]
  10. Res = T + Res
  11. T = ''
  12. return(Res);
  13.  
  14. ArrLength = len(Arr)
  15. for i in range(ArrLength):
  16. Arr[i] = reverse(Arr[i])
  17.  
  18. lo = value % 256
  19. hi = value // 256
  20.  
  21. value == hi * 256 + lo # всегда должно быть верно
  22. rev_value = lo * 256 + hi # то, что хотим по условию, поменяли байты
  23.  
  24. rev_bytes = lambda v: v % 256 * 256 + v // 256
  25.  
  26. rev_bytes = lambda v: ((v % 256) << 8) | (v >> 8)
  27.  
  28. from struct import pack, unpack
  29.  
  30. def reorder_bytes( value ):
  31. return unpack( "H", pack( "H", value )[::-1] )[0]
  32.  
  33.  
  34. # модуль struct (python3) используется для конвертации С структур в python объекты
  35. # H --- unsigned int16
  36. # pack с "H" сконвертирует python int в бинарную строку длиной в 2 байта, соответствующую Си представление unsigned int16
  37. # unpack возвращает tuple из распакованных данных
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement