"Terry Carroll" <[EMAIL PROTECTED]> wrote >> In your formula ( (176 & 127) * 256 + 192 ) you're only using 7 >> bits >> of your high byte. Why are you masking off that last bit? > .... > Scrounging through some old code, I used to use this to pull out the > length: > > def ID3TagLength(s): > """ > Given a 4-byte string s, decode as ID3 tag length > """ > return (ord(s[0]) * 0x200000 + > ord(s[1]) * 0x4000 + > ord(s[2]) * 0x80 + > ord(s[3]) )
I'm intrigued as to why people are using weird combinations of math to manipulate bitstrings given that Python has a full set of bitwise operators. Surely it is easier and more obvious to simply shift the bits right or left using >> and << and use bitwise and/or operations than do all this multiplication and addition malarky. (Its also a lot faster!) If you are going to operate at the bit level why not use the bit level operations? Curious. Alan G. _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor