Print binary representation of type c in python

I have the following number in C / C++ , for example, 0x0202020202ULL , and I would like to print it in binary form 1000000010000000100000001000000010 .

Could you help me?

+4
source share
1 answer

You can use a combination of slicing (or str.rstrip ), int and format .

 >>> inp = '0x0202020202UL' >>> format(int(inp[:-2], 16), 'b') '1000000010000000100000001000000010' # Using `str.rstrip`, This will work for any hex, not just UL >>> format(int(inp.rstrip('UL'), 16), 'b') '1000000010000000100000001000000010' 

Update:

 from itertools import islice def formatted_bin(inp): output = format(int(inp.rstrip('UL'), 16), 'b') le = len(output) m = le % 4 padd = 4 - m if m != 0 else 0 output = output.zfill(le + padd) it = iter(output) return ' '.join(''.join(islice(it, 4)) for _ in xrange((le+padd)/4)) print formatted_bin('0x0202020202UL') print formatted_bin('0x10') print formatted_bin('0x101010') print formatted_bin('0xfff') 

exit:

 0010 0000 0010 0000 0010 0000 0010 0000 0010 0001 0000 0001 0000 0001 0000 0001 0000 1111 1111 1111 
+3
source

Source: https://habr.com/ru/post/1496473/


All Articles