Python Forum
Convert hex value into string - Printable Version

+- Python Forum (https://python-forum.io)
+-- Forum: Python Coding (https://python-forum.io/forum-7.html)
+--- Forum: General Coding Help (https://python-forum.io/forum-8.html)
+--- Thread: Convert hex value into string (/thread-31611.html)



Convert hex value into string - Sancho_Pansa - Dec-22-2020

Hello,

>>> hex_value = 0xFF
>>> string_value = 'hex value is: ' + str(hex_value)
>>> string_value
'hex value is: 255'
How to get hex value is: FF ?
Thanks
Sancho


RE: Convert hex value into string - jefsummers - Dec-22-2020

This includes the 0x
hex_value = 255
hex_value_str = hex(hex_value)
print(f'hex value is: {hex_value_str}')
Output:
hex value is: 0xff



RE: Convert hex value into string - bowlofred - Dec-22-2020

Some options:
>>> format(255, "x")
'ff'
>>> format(255, "X")
'FF'
>>> f"{255:x}"
'ff'
>>> f"{255:X}"
'FF'
>>> f"{hex(255)}"
'0xff'



RE: Convert hex value into string - deanhystad - Dec-22-2020

What do you mean by "get hex value is: FF"? Python lets you use hex notation when writing a string literal.
x = 0xff
And you can print an integer using hex notation a number of ways.
print(hex(x))
print(f'{x:x}')
print(f'{x:X}')
Or do you want to "get" a hex value, as in using input() to enter a hex value? Unfortunately I get an error when I try to do this:
x = int(input('Enter a number in hex format '))
Then error is informative "ValueError: invalid literal for int() with base 10: '0xFF'. So I tried this:
x = int(input('Enter a number in hex format '), 16)
This works if I enter 'ff', 'FF', '0xff' or '0xFF'


RE: Convert hex value into string - Sancho_Pansa - Dec-23-2020

Well ... probably I have to clarify the problem
  1. The hexadecimal value is fixed in the form 0xSS (e.g. 0xFF, 0x42, 0xBA, etc.) It cannot be entered in decimal form, it's part of design feautres
  2. This haxadecimal value have to be added to the string (actually a command that is sent over terminal). And in this command the hexadecimal value should be presented in its "hexadecimal form", but without preceeding 0x.

Sincerely,

Sancho


RE: Convert hex value into string - bowlofred - Dec-23-2020

Why not just strip off the 0x? If you receive it in that form and send it in that form, you don't actually need to interpret it as a number at all.

h = input("Enter the hex value: ")
h = h.replace("0x", "")
new_string = f"The hex value is {h}"
print(new_string)
Output:
Enter the hex value: 0xFF The hex value is FF



RE: Convert hex value into string - Sancho_Pansa - Dec-23-2020

(Dec-22-2020, 05:31 PM)bowlofred Wrote: Some options:
>>> format(255, "x")
'ff'
>>> format(255, "X")
'FF'
>>> f"{255:x}"
'ff'
>>> f"{255:X}"
'FF'
>>> f"{hex(255)}"
'0xff'

Resolved:
>>> hex_value = 0xFF
>>> string_value = 'hex value is: ' + format(hex_value, "X")
>>> string_value
'hex value is: FF'
>>> 
Thanks.


RE: Convert hex value into string - Sancho_Pansa - Dec-23-2020

I rushed a little bit saying it's Ok.
Actually, the problem is not completely resolved: format suppress leading zeros
For example 0x00FF is foramtted as FF, but it should be 00FF.
Any suggestions ?


RE: Convert hex value into string - Sancho_Pansa - Dec-23-2020

Resolved:
'hex value is: ' + '{:04X}'.format(hex_value)