Как преобразовать шестнадцатеричное значение в целое с переводом ascii в Python? - PullRequest
0 голосов
/ 22 мая 2019

Мне нужно преобразовать шестнадцатеричное число в целое число.

У меня есть n=2, затем я использовал newN=hex(n), что дало мне значение 0x32.Теперь я пытаюсь преобразовать его в целочисленное значение, используя int(newN,16), но это ничего не дает, просто пустая строка.Я также пытался chr(int(newN,16)), но тот же результат.

Вот код тестирования

n = '2'
newN = hex(n)
print(str(newN))
oldN = chr(int(newN, 16))
print(str(oldN))

Я получаю следующее:

0x32

1 Ответ

1 голос
/ 22 мая 2019

Прежде всего, ваш вопрос неверен n переменная имеет тип string (длины 1), а не целое число.(потому что это соответствует шестнадцатеричному значению 50, которое эквивалентно '2' в ASCII)

КОД: -

n = '2'

# Ord(n) gives us the Unicode code point of the given character ('2' = 50)
# hex() produces its hexadecimal equivalent (50 = "0x32")
n_hex = hex(ord(n))

# 0x32
print(n_hex)

# Ord(n) gives us the Unicode code point of the given character ('2' = 50) 
n_hex_int = ord(n)

# 50
print(n_hex_int)

ВЫХОД: -

0x32
50
...