logo

Як перетворити шістнадцяткове число у двійкове в python?

The 'шістнадцятковий' це абревіатура від Шістнадцятковий . Це система нумерації, яка використовує 16 як її основа. Він зазвичай використовується в обчислювальній техніці та цифровій електроніці, оскільки може представляти a байт (8 біт) даних лише з двох цифр, що робить його більш лаконічним і легшим для читання, ніж двійковий. У шістнадцятковій системі — цифри 0-9 представляють відповідні значення, тоді як літери A-F (або a-f) представляють цінності 10-15 , відповідно.

вечеря проти вечері

Спосіб 1: Використання функції bin().

Перетворити шістнадцяткове число в двійкове в Python можна за допомогою вбудованої функції під назвою bin() . Ця функція приймає ціле число або рядок як вхідні дані та повертає його двійковий еквівалент.

приклад:

 # Define a hexadecimal string hex_string = '1A' # Convert the hexadecimal string to an integer using the base 16 hex_integer = int(hex_string, 16) # Convert the integer to binary using the bin() function binary_string = bin(hex_integer) # Remove the '0b' prefix from the binary string binary_string = binary_string[2:] # Print the binary string print(binary_string) 

Вихід:

 11010 

Спосіб 2: Використання побітових операторів

Python забезпечує вбудований побітові оператори які можна використовувати для маніпулювання двійковими даними. Ви можете використовувати ці оператори, щоб перетворити шістнадцятковий рядок у двійковий, спочатку перетворивши рядок на ціле число, а потім використовуючи побітові операції для вилучення двійкових цифр.

приклад:

Ось приклад фрагмента коду:

 # Define a hexadecimal string hex_string = '1F' # Convert the hexadecimal string to an integer using the base 16 hex_integer = int(hex_string, 16) # Convert the integer to binary using bitwise operators binary_string = format(hex_integer, 'b') # Print the binary string print(binary_string) 

Вихід:

 11111 

Пояснення:

обрізка javascript

У цьому коді ми спочатку перетворюємо шістнадцятковий рядок у ціле число за допомогою int() функцію з установленою базою 16 . Після цього використовуємо формат() функція зі специфікатором формату 'b' щоб перетворити ціле число на двійковий рядок. The формат() функція повертає рядок із початковими нулями, необхідні для представлення двійкового значення. Нарешті, ми друкуємо двійковий рядок.

Спосіб 3. Використання функції hex2bin() із модуля binascii

Python binascii модуль забезпечує a hex2bin() функція, за допомогою якої можна перетворити шістнадцятковий рядок у двійковий.

приклад:

Ось приклад фрагмента коду:

 # Import the binascii module import binascii # Define a hexadecimal string hex_string = '1A' # Convert the hexadecimal string to binary using the binascii.unhexlify() function binary_string = bin(int.from_bytes(binascii.unhexlify(hex_string), byteorder='big')) # Print the binary string print(binary_string) 

Вихід:

 0b11010 

Пояснення:

У цьому коді ми спочатку імпортуємо binascii модуль. Після цього ми визначаємо шістнадцятковий рядок, який ми хочемо перетворити. Ми передаємо шістнадцятковий рядок binascii.unhexlify() функцію, щоб перетворити його на об’єкт bytes. Після цього ми перетворюємо об'єкт byte в ціле число за допомогою int.from_bytes() з порядком байтів, встановленим на 'великий' (старший байт першим). Нарешті, ми передаємо ціле число в bin() функція для отримання представлення двійкового рядка.

Примітка. Функція bin() повертає двійковий рядок із префіксом «0b». Якщо ви хочете видалити префікс, ви можете використовувати нарізку рядків.

Спосіб 4: Використання розуміння списку та форматування рядків

Ми можемо перетворити шістнадцятковий рядок у двійковий за допомогою a розуміння списку який перебирає кожну шістнадцяткову цифру в рядку та перетворює її на двійковий еквівалент за допомогою форматування рядка.

приклад:

 # Define a hexadecimal string hex_string = '1A' # Convert the hexadecimal string to binary using a list comprehension and string formatting binary_string = ''.join(['{0:04b}'.format(int(d, 16)) for d in hex_string]) # Print the binary string print(binary_string) 

Вихід:

розібрати рядок до int
 00011010 

Пояснення:

У цьому коді ми спочатку визначаємо шістнадцятковий рядок, який ми хочемо перетворити. Після цього ми використовуємо a розуміння списку для повторення кожної шістнадцяткової цифри в рядку. Для кожної цифри ми перетворюємо її на ціле число за допомогою int() функцію з установленою базою 16 , а потім відформатуйте його як двійковий рядок за допомогою 4 цифри використовуючи '{0:04b}'.format() синтаксис форматування рядків. Отримані двійкові рядки збираються в список, який потім об’єднується в один рядок за допомогою ''.join() функція.

Спосіб 5: Використання бібліотеки NumPy

Якщо у вас є Бібліотека NumPy встановлено, ви можете використовувати numpy.base_repr() функція для перетворення шістнадцяткового рядка у двійковий.

приклад:

 # Import the numpy library import numpy as np # Define a hexadecimal string hex_string = '1A' # Convert the hexadecimal string to binary using the numpy.base_repr() function binary_string = np.base_repr(int(hex_string, 16), base=2) # Print the binary string print(binary_string) 

Вихід:

 11010 

Примітка. Функція numpy.base_repr() повертає двійковий рядок без будь-якого префікса чи початкових нулів, на відміну від вбудованої функції bin().