On 2012-04-27, Grant Edwards <invalid@invalid.invalid> wrote:
> On 2012-04-27, Paul Rubin <no.email@nospam.invalid> wrote:
>> python <w.g.sned...@gmail.com> writes:
>>> What to decode hex '0xC0A8'  and return signed short int.
>>
>> Is this right?
>>
>>     n = int('0xC0A8', 16)
>>     if n >= 0xffff:
>>        n -= 0x10000
>
> Yes, as long as the input value doesn't exceed 0x1ffff.  This is
> probably better:
>
>  n = int('0xc0a8'16) & 0xffff

Oops, missed the "signed" part of the requirement.

   n = int('0xc0a8',16) & 0xffff
   
   if (n & 0x8000): n |= -1 & ~0xffff

-- 
Grant Edwards               grant.b.edwards        Yow! It's a lot of fun
                                  at               being alive ... I wonder if
                              gmail.com            my bed is made?!?
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to