On 15/06/2006 9:09 AM, [EMAIL PROTECTED] 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 -- http://mail.python.org/mailman/listinfo/python-list