Solved

# Binary Bits to Decimal Numbers

Posted on 2010-08-21
509 Views
i am interested to get a python module/script that does the following :

Input :

Binary Values

10011100011

Output:

Based on the above binary values/bits, convert the bits into dec equivalent

1024 + not_set + not_set + 128 + 64 + 32 + not_set + not_set + not_set + 2 + 1

Thanks a bunch.

0
Question by:williamwlk
[X]
###### Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

• Help others & share knowledge
• Earn cash & points
• 6
• 3

LVL 41

Expert Comment

ID: 33491679
you mean like:

``````>>>
>>> int( '10011100011', 2 )
1251
>>>>>> hex( 1251 )
'0x4e3'
``````
0

LVL 41

Expert Comment

ID: 33491680
Oh, you really want that output?

1024 + not_set + not_set + 128 + 64 + 32 + not_set + not_set + not_set + 2 + 1

one moment.
0

Author Comment

ID: 33491707
:) Yes
0

LVL 41

Accepted Solution

HonorGod earned 350 total points
ID: 33491719
Like this?

Output:

C:\>python plus.py
1024 +  not_set +  not_set +  128 +  64 +  32 +  not_set +  not_set +  not_set +  2 +  1

``````val = '10011100011';
L = len( val );
plus = '';
for i in range( L ) :
c = val[ i ];
if c == '1' :
print plus, int( ( '1' + ( '0' * ( L - 1 - i ) ) ), 2 ),
else :
print plus, 'not_set',
plus = '+ ';
``````
0

LVL 41

Assisted Solution

HonorGod earned 350 total points
ID: 33495195
Do you like this better?

Output:
1024 +  not_set +  not_set +  128 +  64 +  32 +  not_set +  not_set +  not_set +  2 +  1
``````val = '10011100011'
result = [];
pot = 1
while val :
val, c = val[ :-1 ], val[ -1 ]
if c == '1' :
result.append( pot );
else :
result.append( 'not_set' )
pot *= 2

result.reverse();
plus = '';
for c in result :
print plus, c,
plus = '+ ';
``````
0

LVL 15

Assisted Solution

mish33 earned 150 total points
ID: 33597732
I'd like more structured version:
``````def p2(n):
p = 1
s = []
while n:
s.append(n&1 and p or 0)
p *= 2
n /= 2
return s[::-1]

value = '10011100011'
print ' + '.join(str(b or 'not set') for b in p2(int(value, 2)))
``````
0

LVL 41

Expert Comment

ID: 33597845
the "or 0" appears to be unnecessary...

interesting solution though
``````def p2(n):
p = 1
s = []
while n:
s.append(n&1 and p)
p *= 2
n /= 2
return s[::-1]

value = '10011100011'
print ' + '.join(str(b or 'not set') for b in p2(int(value, 2)))
``````
0

Author Closing Comment

ID: 33639756
Thanks Bros! Cheers.
W
0

LVL 41

Expert Comment

ID: 33639828
Thanks for the grade & points.

Good luck & have a great day.
0

Author Comment

ID: 33639865
You star! HonorGod! Thanks for helping me out too.
0

## Featured Post

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

### Suggested Solutions

Less strange, but still introduction This introduction was added (1st August, 2011) to reflect some reactions. Â Firstly, the term basics in the title of the article... Â As any other word, it is a symbol with meaning attached to the word by some aâ€¦