fork download
  1. import timeit
  2.  
  3.  
  4. def toByteHexArray(n):
  5. string = hex(n)
  6. if len(string) % 2 == 1:
  7. pairs = zip("0"+string[::2], string[1::2])
  8. else:
  9. pairs = zip(string[::2], string[1::2])
  10. return "[0x" + ",0x".join([a + b for a, b in pairs]) + "]"
  11.  
  12.  
  13. def bytes_generator(num):
  14. bytes_len = (num.bit_length() + 7) // 8
  15. return map(hex, num.to_bytes(bytes_len, byteorder='big'))
  16.  
  17.  
  18. def split_bytes(num, as_string=False):
  19. if as_string:
  20. return f'[{",".join(bytes_generator(num))}]'
  21. return list(bytes_generator(num))
  22.  
  23.  
  24.  
  25. if __name__ == '__main__':
  26. t1 = timeit.timeit("toByteHexArray(0x3E75C28F3E75C28F3E75)", 'from __main__ import toByteHexArray')
  27. t3 = timeit.timeit("split_bytes(0x3E75C28F3E75C28F3E75)", 'from __main__ import split_bytes, bytes_generator')
  28. t6 = timeit.timeit("split_bytes(0x3E75C28F3E75C28F3E75, True)", 'from __main__ import split_bytes, bytes_generator')
  29. print(t1)
  30. print(t3)
  31. print(t6)
Success #stdin #stdout 4.83s 9616KB
stdin
Standard input is empty
stdout
2.050251701846719
1.3436660636216402
1.4344372730702162