Перевод в шестнадцатеричный python

Python Program to convert decimal to hexadecimal

In this post we are going to understand Python Program to convert decimal to hexadecimal with example using built in function hex () and Python convert decimal to hex () without 0x.

1. Python hex() function to convert decimal

In this example we have used Python built-in function hex() to convert an integer number to a lower-case hexadecimal string prefixed with “0x”.

Python Program

dec_num = int(input("Please Enter a number: ")) print("Decimal to hex: ",hex(dec_num))

2. Python convert decimal to hex() without 0x

In this example we are using the inbuilt hex() function to get the hexadecimal number and the slicing [2:] to remove the prefix “ox” and convert decimal to hexadecimal without “0x”

Python Program to convert decimal to hex() without 0x

dec_num = int(input("Please Enter a number: ")) hex_num = hex(dec_num) print("The decimal to hexadecimal value: ", hex_num[2:])
Please Enter a number: 12 The decimal to hexadecimal value: c

3. Function to convert decimal to hexadecimal Using while loop

In this example we have used a function decimal_to_hexa() to convert decimal to hexadecimal by using while loop with list append () method to get hexadecimal need to divide the decimal number to 16 until it decreases to zero and appending the reminder to list. To get list element reversed order by using [: :-1] and iterating list using for loop to get hexadecimal value.

Читайте также:  Java static когда использовать

Python Program to convert decimal to hexadecimal using while loop

def decimal_to_hexa(dec_num): lst = list() while dec_num: reminder = dec_num % 16 dec_num = dec_num // 16 if reminder < 10: lst.append(reminder) else: lst.append(chr(reminder+55)) for num in lst[::-1]: print(num, end="") dec_num = int(input("Please Enter a number: ")) decimal_to_hexa(dec_num)
Please Enter a number: 94 5E

4. Python program to convert decimal to hexadecimal Using recursion

In this example, we have defined a function decimalTo_hexadecimal() to call recursively to find the hexadecimal.

  • if the decimal number is less than 0 then we will return.
  • Next, we are finding reminder by dividing the decimal number by 16 and adding the corresponding list value to reminder and calling the decimalTo_hexadecimal() recursively.

Python Progarm to convert decimal to hexadecimal Using recursion

HexVal_list = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A' , 'B', 'C', 'D', 'E', 'F'] def decimalTo_hexadecimal(dec_num): if(dec_num<=0): return '' remainder = dec_num%16 return decimalTo_hexadecimal(dec_num//16)+HexVal_list[remainder] decimal = int(input("Please Enter a number: ")) print("Decimal to Hexadecimal val: ",decimalTo_hexadecimal(decimal))
Please Enter a number: 12 Decimal to Hexadecimal val: C

5. Convert String to Hexdecimal in Python

To convert a string to hexadecimal first we have to convert it to int with base 16.First we have to convert hexadecimal string to number using int() method.Finally using hex() method to convert to hexadecimal.

Python Program to convert String to Hexdecimal in Python

hex_str = "0xBB" int_num = int(hex_str, 16) hexadecimal = hex(int_num) print(hexadecimal)

Summary

In this post,We have learned Python Program to convert decimal to hexadecimal with examples

Источник

Перевод чисел в Python

В данной статье мы рассмотрим встроенные функции языка программирования Python по переводу чисел в различные системы счисления. А так же напишем универсальную функцию по переводу десятичных чисел в другие системы счисления.

Перевод чисел из десятичной системы счисления
Для перевода числа из десятичной системы счисления в двоичную можно воспользоваться оператором bin(). В качестве аргумента нужно передать значение в виде числа, а оператор вернет строку с двоичным числом. У результата также будет префикс 0b, указывающий на основание системы счисления.

number = 123 result = bin(number) print(result)

Для перевода в восьмеричную систему счисления есть оператор oct(). Он также возвращает строку с восьмеричным числом и префиксом 0o.

number = 123 result = oct(number) print(result)

При переводе в шестнадцатеричную систему счисления воспользуемся оператором hex(). Он вернет строку шестнадцатеричным числом и префиксом 0x

number = 123 result = hex(number) print(result)

Если же вам не нужен префикс у результата перевода, то всегда можно взять срез у полученной строки.

print(bin(123)[2:]) print(oct(123)[2:]) print(hex(123)[2:])

Так же выводить числа в других системах счисления можно используя f-строки и формат вывода. Для этого в строке, через символ : указываем буквы b – для двоичной, o – для восьмеричной и x – для шестнадцатеричной системы счисления.

n = 1984 print(f'Двоичное: ') print(f'Восьмеричное: ') print(f'Шестнадцатеричное: ')
Двоичное: 11111000000 Восьмеричное: 3700 Шестнадцатеричное: 7c0

А теперь напишем универсальную функцию convert_to() по переводу чисел из десятичной системы счисления в систему счисления в любым основанием. Наша функция будет ограничена только наличием символов в переводимой системе счисления.
Данная функция принимает три аргумента, два из которых обязательные. Это десятичное целое число number и основание переводимой системы счисления base. Третий аргумент upper служит для указания регистра вывода строки переведенного числа. По умолчанию он установлен в значение False.

def convert_to(number, base, upper=False): digits = '0123456789abcdefghijklmnopqrstuvwxyz' if base > len(digits): return None result = '' while number > 0: result = digits[number % base] + result number //= base return result.upper() if upper else result

Во второй строке мы задаем переменную digits, содержащую набор символов цифр и букв английского языка. Она нам понадобится для составления символов переведенного числа на основании остатков.
В третьей строке мы проверяем основание переданной системы счисления на его длину. Если основание окажется больше, чем количество символов в нашей строке digits, то мы прекращаем выполнение функции через вызов оператора return и возвращаем None. Это такая своеобразная защита функции от неправильно переданных аргументов. Если мы попробуем перевести число в большую систему счисления по основанию, чем у нас есть символов для его записи, то мы его не сможем записать.
Дальше заведем переменную result для хранения результата работы функции и зададим ей значение в виде пустой строки. Теперь с помощью цикла с условием будем находить остаток от деления числа number на основание base, а также уменьшать number в base раз используя целочисленное деление.
Остаток от деления числа на основание переводимой системы счисления мы будем использовать как индекс для получения символа в строке digits и добавлять его к результату result. Добавлять это значение следует слева, т.к. самый первый остаток является самым правым разрядом. Цикл выполняется до тех пор, пока исходное значение переменной number больше нуля.
После завершения цикла мы вернем результат через вызов return. Для этого воспользуемся тернарным оператором и проверим наш третий аргумент. Если он будет в значении True, то для строки result вызовем строкой метод .upper() который заменит все прописные символы английского языка на строчные. Иначе, вернем результат как есть.

Читайте также:  If class not defined php

А теперь проверим работу нашей функции. Для этого попробуем перевести числа в , , 16ю, 32ю и 64ю системы счисления. Для перевода в 32ю систему счисления мы укажем третий необязательный аргумент upper и зададим ему значение True.

print(convert_to(123, 2)) print(convert_to(123, 8)) print(convert_to(123, 16)) print(convert_to(123, 32, upper=True)) print(convert_to(123, 64))

Перевод чисел в десятичную систему счисления
Для обратного перевода в десятичную систему счисления мы будем использовать оператор int(). Для этого передадим ему два аргумента, первый – это строка с числом в какой-то системе счисления, а второй – это основание системы счисления самого числа. По умолчанию для этого необязательного аргумента стоит значение равное 10.
В качестве самого числа нужно обязательно передать строку. Строка может содержать или само число или число с префиксом системы счисления.
Для перевода из двоичной системы счисления:

number = '11001' result = int(number, 2) print(result)
number = '0b11001' result = int(number, 2) print(result)

Для перевода из восьмеричной системы счисления:

Источник

Оцените статью