import timeit
def toByteHexArray(n):
string = hex(n)
if len(string) % 2 == 1:
pairs = zip("0"+string[::2], string[1::2])
else:
pairs = zip(string[::2], string[1::2])
return "[0x" + ",0x".join([a + b for a, b in pairs]) + "]"
def bytes_generator(num):
bytes_len = (num.bit_length() + 7) // 8
return map(hex, num.to_bytes(bytes_len, byteorder='big'))
def split_bytes(num, as_string=False):
if as_string:
return f'[{",".join(bytes_generator(num))}]'
return list(bytes_generator(num))
if __name__ == '__main__':
t1 = timeit.timeit("toByteHexArray(0x3E75C28F3E75C28F3E75)", 'from __main__ import toByteHexArray')
t3 = timeit.timeit("split_bytes(0x3E75C28F3E75C28F3E75)", 'from __main__ import split_bytes, bytes_generator')
t6 = timeit.timeit("split_bytes(0x3E75C28F3E75C28F3E75, True)", 'from __main__ import split_bytes, bytes_generator')
print(t1)
print(t3)
print(t6)
aW1wb3J0IHRpbWVpdAogCiAKZGVmIHRvQnl0ZUhleEFycmF5KG4pOgogICAgc3RyaW5nID0gaGV4KG4pCiAgICBpZiBsZW4oc3RyaW5nKSAlIDIgPT0gMToKICAgICAgICBwYWlycyA9IHppcCgiMCIrc3RyaW5nWzo6Ml0sIHN0cmluZ1sxOjoyXSkKICAgIGVsc2U6CiAgICAgICAgcGFpcnMgPSB6aXAoc3RyaW5nWzo6Ml0sIHN0cmluZ1sxOjoyXSkKICAgIHJldHVybiAiWzB4IiArICIsMHgiLmpvaW4oW2EgKyBiIGZvciBhLCBiIGluIHBhaXJzXSkgKyAiXSIKIAogCmRlZiBieXRlc19nZW5lcmF0b3IobnVtKToKICAgIGJ5dGVzX2xlbiA9IChudW0uYml0X2xlbmd0aCgpICsgNykgLy8gOAogICAgcmV0dXJuIG1hcChoZXgsIG51bS50b19ieXRlcyhieXRlc19sZW4sIGJ5dGVvcmRlcj0nYmlnJykpCiAKIApkZWYgc3BsaXRfYnl0ZXMobnVtLCBhc19zdHJpbmc9RmFsc2UpOgogICAgaWYgYXNfc3RyaW5nOgogICAgICAgIHJldHVybiBmJ1t7IiwiLmpvaW4oYnl0ZXNfZ2VuZXJhdG9yKG51bSkpfV0nCiAgICByZXR1cm4gbGlzdChieXRlc19nZW5lcmF0b3IobnVtKSkKIAogCiAKaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKICAgIHQxID0gdGltZWl0LnRpbWVpdCgidG9CeXRlSGV4QXJyYXkoMHgzRTc1QzI4RjNFNzVDMjhGM0U3NSkiLCAnZnJvbSBfX21haW5fXyBpbXBvcnQgdG9CeXRlSGV4QXJyYXknKQogICAgdDMgPSB0aW1laXQudGltZWl0KCJzcGxpdF9ieXRlcygweDNFNzVDMjhGM0U3NUMyOEYzRTc1KSIsICdmcm9tIF9fbWFpbl9fIGltcG9ydCBzcGxpdF9ieXRlcywgYnl0ZXNfZ2VuZXJhdG9yJykKICAgIHQ2ID0gdGltZWl0LnRpbWVpdCgic3BsaXRfYnl0ZXMoMHgzRTc1QzI4RjNFNzVDMjhGM0U3NSwgVHJ1ZSkiLCAnZnJvbSBfX21haW5fXyBpbXBvcnQgc3BsaXRfYnl0ZXMsIGJ5dGVzX2dlbmVyYXRvcicpCiAgICBwcmludCh0MSkKICAgIHByaW50KHQzKQogICAgcHJpbnQodDYp