Программа Python для печати массива байтов, представляющих целое число
Учитывая целое число 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) |
["0x1", "0x7", "0xdd", "0x17"]