![]() |
Convert hexadecimal string to binary
Guys,
I have the following hexadecimal string - '\xff\xff\xff' which i need to convert to binary. How would i go about doing this? Eric |
Re: Convert hexadecimal string to binary
Eric wrote:
> I have the following hexadecimal string - '\xff\xff\xff' which i need > to convert to binary. > > How would i go about doing this? You'll need to explain more clearly, and possibly change how you view such things, before anyone can help you with certainty. What you show above is a *binary* sequence of bytes containing three bytes, each with the value 255. The representation of it which you copied (?) from the console contains printable characters and extra stuff to make it easier to read, but that's what you get from repr() on a binary string. Do you actually want a string containing the six printable characters 'FFFFFF'? If that's the case, it's not what you would usually call "binary". Anyway, use binascii.hexlify() for that... Can you give an example of the output you really want? How many bytes does it contain? How does it differ from the string above? -Peter |
Re: Convert hexadecimal string to binary
ekoome@yahoo.com (Eric) writes:
> Guys, > I have the following hexadecimal string - '\xff\xff\xff' which i need > to convert to binary. > > How would i go about doing this? > > Eric Assuming you mean the result is a string of "1" and "0" chars, here is a mechanism. We use a lookup to avoid converting to and from internal numbers. #---x is the data--- x='\xff\xff\xff' #---notice it is actually a sequence of 8-bit bytes--- #---generate a dictionary of all 256 values and their binary codings--- bits={'\x00':'00000000', '\x01':'00000001', .......... '\xff':'11111111'} #---collect answer in buffer--- s=StringIO.StringIO() for byte in x: s.write(bits[byte]) #---report result--- print s.getvalue() -- harry.g.george@boeing.com 6-6M21 BCA CompArch Design Engineering Phone: (425) 342-0007 |
Re: Convert hexadecimal string to binary
On 22 Apr 2004 08:06:26 -0700, ekoome@yahoo.com (Eric) wrote:
>Guys, >I have the following hexadecimal string - '\xff\xff\xff' which i need >to convert to binary. > >How would i go about doing this? > Assuming that string is the representation of a string of bytes whose binary values are 255 (or hex 0xff), and you want to view it like a big-endian number representation, and convert it to an integer (or long, if it gets big), >>> def s2i(s): return sum([ord(c)*256**i for i,c in enumerate(s[::-1])]) ... >>> s2i('\xff\xff\xff') 16777215 >>> hex(s2i('\xff\xff\xff')) '0xffffff' >>> hex(s2i('\x01\x02\x03')) '0x10203' >>> hex(s2i('\x01\x02\x03\x04')) '0x1020304' >>> hex(s2i('\x01\x02\x03\x04\x05')) '0x102030405L' >>> hex(s2i('\x01\x02')) '0x102' >>> s2i('\x01\x02') 258 Note that this is unsigned -- >>> hex(s2i('\xff\xff\xff\xff')) '0xFFFFFFFFL' >>> hex(s2i('\x80\x00\x00\x00')) '0x80000000L' You could do it other and faster ways... Regards, Bengt Richter |
| All times are GMT. The time now is 11:03 PM. |
Powered by vBulletin®. Copyright ©2000 - 2013, vBulletin Solutions, Inc.
SEO by vBSEO ©2010, Crawlability, Inc.