[Last Call] Learn how to a build a cloud-first strategyRegister Now

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 515
  • Last Modified:

Binary Bits to Decimal Numbers

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
williamwlk
Asked:
williamwlk
  • 6
  • 3
3 Solutions
 
HonorGodCommented:
you mean like:


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

Open in new window

0
 
HonorGodCommented:
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
 
williamwlkAuthor Commented:
:) Yes
0
Upgrade your Question Security!

Add Premium security features to your question to ensure its privacy or anonymity. Learn more about your ability to control Question Security today.

 
HonorGodCommented:
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 = '+ ';

Open in new window

0
 
HonorGodCommented:
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 = '+ ';

Open in new window

0
 
mish33Commented:
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)))

Open in new window

0
 
HonorGodCommented:
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)))

Open in new window

0
 
williamwlkAuthor Commented:
Thanks Bros! Cheers.
W
0
 
HonorGodCommented:
Thanks for the grade & points.

Good luck & have a great day.
0
 
williamwlkAuthor Commented:
You star! HonorGod! Thanks for helping me out too.
0

Featured Post

Free Tool: Path Explorer

An intuitive utility to help find the CSS path to UI elements on a webpage. These paths are used frequently in a variety of front-end development and QA automation tasks.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

  • 6
  • 3
Tackle projects and never again get stuck behind a technical roadblock.
Join Now