problem with bcd and a number

Ethan Furman ethan at stoneleaf.us
Thu Aug 4 22:14:18 CEST 2011


MRAB wrote:
> On 04/08/2011 19:26, nephish wrote:
>> Hey all,
>>
>> I have been trying to get my head around how to do something, but i am
>> missing how to pull it off.
>> I am reading a packet from a radio over a serial port.
>>
>> i have " two bytes containing the value i need.  The first byte is the
>> LSB, second is MSB.  Both bytes are BCD-encoded, with the LSB
>> containing digits zX and MSB containing digits xy.  The system speed
>> is then xyz%, where 100% means maximum speed and would be given by
>> bytes 00(LSB) 10(MSB)."
>>
>> that is a quote from the documentation.
>> Anyway, i am able to parse out the two bytes i need, but don't know
>> where to go from there.
>>
>> thanks for any tips on this.
> 
> The value is MSB * 100 + (LSB >> 4) * 10 + (LSB & 0xF)

Not according to the docs -- msb has two digits, lsb has one and garbage.

~Ethan~



More information about the Python-list mailing list