programa Python para imprimir una matriz de bytes que representa un número entero

Python ejemplo de .to_bytes class (método) : Aquí, vamos a aprender cómo convertir un número dado en una matriz int ?

Dado un número entero y tenemos que convertirlo en una matriz byte en Python.

Para convertir un número entero en bytes (array byte) , utilizamos método to_bytes () de byte int, se denomina con el número con tres argumentos y devuelve una matriz class que representa el número.

Sintaxis:

    int.to_bytes(size, byteorder)

Aquí,

  • tamaño es el tamaño máximo (en bytes) del número.
  • byteorder es la técnica para imprimir los bytes, tiene dos valores grandes para imprimir bytes matriz en formato big endian y poco para imprimir bytes matriz en formato little-endian.

Ejemplo:

    Input:
num = 100
# function call
print(num.to_bytes(2, byteorder ='big'))
Output:
b'x00d'

código Python para convertir un número entero de bytes array

# Python program to find number of bits 
# necessary to represent an integer in binary
# input a number
num = int(input("Enter an integer number: "))
# total bits to represent number
bits = num.bit_length()
print("bits required to store ", num, " = ", bits)
print("binary value of ", num, " is = ", bin(num))

salida

First run:
Enter an integer number: 67
bits required to store 67 = 7
binary value of 67 is = 0b1000011
Second run:
Enter an integer number: 3
bits required to store 3 = 2
binary value of 3 is = 0b11

Si el número es mayor que 2 bytes valor,

Si el número de entrada es mayor que 2 bytes y utilizamos el tamaño «2 bytes» con los to_bytes () método , a continuación, un «OverflowError» error ( «byte demasiado grande para convertir» ) ocurrirá .

Enter an integer number: 12387615
Traceback (most recent call last):
File "/home/main.py", line 8, in <module>
x = num.to_bytes(2, byteorder ='big')
OverflowError: int too big to convert

to_bytes () matriz con tamaño «4 bytes»

En el ejemplo anterior, hemos utilizado tamaño «2 bytes» , si el número es mayor de lo que, podemos aumentar el tamaño. Aquí, en este ejemplo – que estamos utilizando tamaño «4 bytes» , por lo tanto, podemos convertir un número entero hasta 4 bytes.

# Python program to print an array of bytes 
# representing an integer
# input an integer number
num = int(input("Enter an integer number: "))
# finding the byte array
x = num.to_bytes(4, byteorder ='big')
# printing byte array
print("x = ", x)

salida

First run:
Enter an integer number: 12387615
x = b'x00xbdx05x1f'
Second run:
Enter an integer number: 9999876
x = b'x00x98x96x04'

Impresión de los bytes matriz en formato little-endian

Para imprimir bytes conjunto de un número entero, podemos definir byteorder valor con poco . En este ejemplo, estamos convirtiendo un número entero (hasta 4 bytes) de bytes de matriz en poco-endian orden.

# Python program to print an array of bytes 
# representing an integer
# input an integer number
num = int(input("Enter an integer number: "))
# finding the byte array
x = num.to_bytes(4, byteorder ='little')
# printing byte array
print("x = ", x)

salida

First run:
Enter an integer number: 12387615
x = b'x1fx05xbdx00'
Second run:
Enter an integer number: 9999876
x = b'x04x96x98x00'


Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *