amarao (amarao_san) wrote,
amarao
amarao_san

Category:

Доктор, да вы маньяк...

Задача №3 (продолжаем экстремальное изучение питона):

Вывести на экран hex-dump строки по 16 байт в строке, 
предваряя строку относительным адресом.

Образец:
0000:  E1 E2 E0 AE AA E3 20 AE E2 AD AE E1 A8 E2 A5 AB
0020:  EC AD EB AC 20 A0 A4 E0 A5 E1 AE AC 2E 0D 0A 0D
0030:  0A 8E A1 E0 A0 A7 A5 E6 3A 0D 0A



Решение:
def hex_print(data):
	for i in xrange(len(data)/16+1):
		sl=data[i*16:min(len(data),(i+1)*16)]
		print "%04X: " % (i*16,), ("%02X "*len(sl)) % tuple([ord(byte) for byte in sl])



hex_print("Вывести на экран hex-dump строки по 16 байт в строке, предваряя строку относительным адресом.")


P.S. А всё равно не привычно, что строки - это не массивы чисел. Казалось бы, так очевидно, что print ("%d,"*len(x)) % tuple(x), где x - строка, должен вывести список кодов. Однако, не выводит -_-.
Tags: programming, python
Subscribe

  • Post a new comment

    Error

    default userpic

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 2 comments