Программа Python для печати массива байтов, представляющих целое число

Опубликовано: 14 Марта, 2022

Учитывая целое число N , задача состоит в том, чтобы написать программу Python для представления байтов этого числа в виде массива.

Байт - это группа из 8 бит. Любое целое число может быть представлено в виде байтов и битов. Обычно мы используем шестнадцатеричные коды для представления байта. Один шестнадцатеричный символ может представлять 4 бита, поэтому для представления байта используется пара шестнадцатеричных символов.

Пример:

Input: N = 543

Output: [‘0x2’, ‘0x1f’]

Explanation: 543 can be represented as 1000011111 in binary which can be grouped as (10)(00011111), each group representing a byte. In hexadecimal form, this number will be (0x02)(0x1F).

Input: N = 17292567

Output: [‘0x1’, ‘0x7’, ‘0xdd’, ‘0x17’]

Explanation: 17292567 can be represented as 1000001111101110100010111 in binary which can be grouped as (1)(00000111)(11011101)(00010111), each group representing a byte. In hexadecimal form, this number will be (0x1), (0x7), (0xdd), (0x17).

Метод 1 (ручное преобразование):

Точно так же, как мы преобразуем десятичные числа в двоичные числа, мы можем преобразовать его в число с основанием 256, которое даст нам 8-битные числа, представляющие байты для данного числа.

Below is the code to implement the above-discussed method:

Python3

n = 17292567
  
# Initialize the empty array
array = []
  
# Get the hexadecimal form
while(n):
    r = n % 256
    n = n//256
    array.append(hex(r))
      
# Reverse the array to get the MSB to left
array.reverse()
print(array)
Output

["0x1", "0x7", "0xdd", "0x17"]