fork(3) download
  1. import timeit
  2.  
  3.  
  4. def toByteHexArray(n):
  5. string = hex(n)[2:]
  6. if len(string) % 2 == 1:
  7. string = "0" + string
  8. pairs = zip(string[::2], string[1::2])
  9. return "[0x" + ",0x".join((a + b for a, b in pairs)) + "]"
  10.  
  11.  
  12. def split_bytes(n, as_string=False):
  13. result = []
  14. keep_going = True
  15. while keep_going:
  16. if n >> 8 == 0:
  17. keep_going = False
  18. result.insert(0, hex(n & 0xFF))
  19. n = n >> 8
  20.  
  21. if as_string:
  22. return f'[{",".join(result)}]'
  23.  
  24. return result
  25.  
  26.  
  27. if __name__ == '__main__':
  28. t1 = timeit.timeit("toByteHexArray(0x3E75C28F)", 'from __main__ import toByteHexArray')
  29. t2 = timeit.timeit("split_bytes(0x3E75C28F)", 'from __main__ import split_bytes')
  30. t3 = timeit.timeit("split_bytes(0x3E75C28F, True)", 'from __main__ import split_bytes')
  31. print(t1)
  32. print(t2)
  33. print(t3)
  34.  
Success #stdin #stdout 4.79s 9720KB
stdin
Standard input is empty
stdout
1.9186392445117235
1.197393735870719
1.6646145395934582