On 2012-04-27, Grant Edwards <[email protected]> wrote:
> On 2012-04-27, Paul Rubin <[email protected]> wrote:
>> python <[email protected]> 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