Negative hex to int

John Machin sjmachin at lexicon.net
Wed Jun 14 19:23:43 EDT 2006


On 15/06/2006 9:09 AM, andreas.lydersen at gmail.com wrote:
> Hi!
> 
> While communicating with a monitoring unit, I get some hex values
> representing degrees celcius from its probes. The values can be
> something like '19' or '7d'. To convert it to int, I do the following:
> ---------------------------
> Python 2.4.2 (#1, Sep 28 2005, 10:25:47)
> [GCC 3.4.3 20041212 (Red Hat 3.4.3-9.EL4)] on linux2
> Type "help", "copyright", "credits" or "license" for more information.
>>>> int('7d', 16)
> 125
>>>> int('19', 16)
> 25
> ---------------------------
> 
> The problem is negative values. If the unit returns the hex value 'e7',
> it means -25, but python says it's 231:
> ---------------------------
>>>> int('e7', 16)
> 231
> ---------------------------
> 

The Da Vinci code it aint :-)

|>> readings = ['19', 'e7']
|>> for reading in readings:
...    intval = int(reading, 16)
...    if intval >= 128:
...       intval -= 256
...    print intval
...
25
-25




More information about the Python-list mailing list