logo

Jak przekonwertować system szesnastkowy na binarny w Pythonie?

The 'klątwa' jest skrótem od Szesnastkowy . Jest to system numerowania, który wykorzystuje 16 jako jego baza. Jest powszechnie stosowany w informatyce i elektronice cyfrowej, ponieważ może reprezentować bajt (8 bitów) danych za pomocą zaledwie dwóch cyfr, co czyni je bardziej zwięzłymi i łatwiejszymi do odczytania niż dane binarne. W systemie szesnastkowym cyfry 0-9 reprezentują ich odpowiednie wartości, natomiast litery AF (lub a-f) reprezentują wartości 10-15 odpowiednio.

Struktury danych Java

Metoda 1: Użycie funkcji bin().

Konwersję systemu szesnastkowego na binarny w Pythonie można wykonać za pomocą wbudowanej funkcji o nazwie kosz() . Ta funkcja przyjmuje na wejściu liczbę całkowitą lub ciąg znaków i zwraca jej binarny odpowiednik.

Przykład:

 # 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) 

Wyjście:

 11010 

Metoda 2: Używanie operatorów bitowych

Python zapewnia wbudowany operatory bitowe które można wykorzystać do manipulacji danymi binarnymi. Możesz użyć tych operatorów do konwersji ciągu szesnastkowego na binarny, najpierw konwertując ciąg na liczbę całkowitą, a następnie używając operacji bitowych w celu wyodrębnienia cyfr binarnych.

Przykład:

Oto przykładowy fragment kodu:

 # 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) 

Wyjście:

 11111 

Wyjaśnienie:

W tym kodzie najpierw konwertujemy ciąg szesnastkowy na liczbę całkowitą za pomocą metody int() działa przy ustawionej podstawie 16 . Następnie używamy format() funkcję ze specyfikatorem formatu 'B' aby przekonwertować liczbę całkowitą na ciąg binarny. The format() funkcja zwraca ciąg znaków z zerami na początku, jeśli jest to konieczne do przedstawienia wartości binarnej. Na koniec drukujemy ciąg binarny.

Metoda 3: Użycie funkcji hex2bin() z modułu binascii

Pythona binascii moduł zapewnia hex2bin() funkcja, której można użyć do konwersji ciągu szesnastkowego na binarny.

Przykład:

Oto przykładowy fragment kodu:

nazwa miasta w USA
 # 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) 

Wyjście:

 0b11010 

Wyjaśnienie:

W tym kodzie najpierw importujemy plik binascii moduł. Następnie definiujemy ciąg szesnastkowy, który chcemy przekonwertować. Przekazujemy ciąg szesnastkowy do binascii.unhexlify() funkcję konwertującą go na obiekt bajtów. Następnie konwertujemy obiekt bajtowy na liczbę całkowitą za pomocą int.from_bytes() funkcję, z ustawioną kolejnością bajtów 'duży' (najpierw najbardziej znaczący bajt). Na koniec przekazujemy liczbę całkowitą do kosz() funkcję, aby uzyskać binarną reprezentację ciągu.

Uwaga: Funkcja bin() zwraca ciąg binarny z przedrostkiem „0b”. Jeśli chcesz usunąć przedrostek, możesz użyć wycinania ciągów.

Metoda 4: Używanie rozumienia listy i formatowania ciągów

Możemy przekonwertować ciąg szesnastkowy na binarny za pomocą a zrozumienie listy która iteruje po każdej cyfrze szesnastkowej w ciągu i konwertuje ją na jej binarny odpowiednik przy użyciu formatowania ciągu.

Przykład:

 # 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) 

Wyjście:

 00011010 

Wyjaśnienie:

W tym kodzie najpierw definiujemy ciąg szesnastkowy, który chcemy przekonwertować. Następnie używamy a zrozumienie listy do iteracji po każdej cyfrze szesnastkowej w ciągu. Każdą cyfrę konwertujemy na liczbę całkowitą za pomocą int() działa przy ustawionej podstawie 16 , a następnie sformatuj go jako ciąg binarny za pomocą 4 cyfry używając „{0:04b}”.format() Składnia formatowania ciągu. Powstałe ciągi binarne są zbierane w listę, która następnie jest łączona w jeden ciąg za pomocą ''.dołączyć() funkcjonować.

przykładem systemu operacyjnego typu open source jest

Metoda 5: Korzystanie z biblioteki NumPy

Jeśli masz Biblioteka NumPy zainstalowany, możesz używać numpy.base_repr() funkcja konwertująca ciąg szesnastkowy na binarny.

Przykład:

 # 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) 

Wyjście:

 11010 

Uwaga: Funkcja numpy.base_repr() zwraca ciąg binarny bez żadnych przedrostków ani zer wiodących, w przeciwieństwie do wbudowanej funkcji bin().