hex to bin 16 bit word

Grant Edwards invalid at invalid.invalid
Fri Apr 27 16:02:29 EDT 2012


On 2012-04-27, Grant Edwards <invalid at invalid.invalid> wrote:
> On 2012-04-27, Grant Edwards <invalid at invalid.invalid> wrote:
>> On 2012-04-27, Paul Rubin <no.email at nospam.invalid> wrote:
>>> python <w.g.sneddon at 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

or this:

     if (n & 0x8000): n = -((~n & 0x7fff) + 1)



-- 
Grant Edwards               grant.b.edwards        Yow! I'm definitely not
                                  at               in Omaha!
                              gmail.com            



More information about the Python-list mailing list