37,720
社区成员
发帖
与我相关
我的任务
分享
bin=str(input('输入二进制数:'))
count = 0
for i in range(0,len(bin)):
if bin[i] == str(1):
sum=2**(len(bin)-i-1)
count=count+sum
print count
number = int(input('输入十进制'))
n=''.join([str((number>>a&0x1))for a in range(7,-1,-1)]);
print n
In [21]: def bin2dec(s):
...: total = 0
...: for i in s:
...: total = 2*total + (0 if i=='0' else 1)
...: return total
In [22]: def bin2dec2(bin):
...: count = 0
...: for i in range(0,len(bin)):
...: if bin[i] == str(1):
...: sum=2**(len(bin)-i-1)
...: count=count+sum
...: return count
In [23]: a = '101010101010111'
In [24]: int(a, 2)
Out[24]: 21847
In [25]: bin2dec(a)
Out[25]: 21847
In [26]: bin2dec2(a)
Out[26]: 21847
In [27]: %timeit int(a, 2)
10000000 loops, best of 3: 181 ns per loop
In [28]: %timeit bin2dec(a)
1000000 loops, best of 3: 1.36 us per loop
In [29]: %timeit bin2dec2(a)
100000 loops, best of 3: 4.55 us per loop
x = bin(1024)
print 'bin:', x
x = oct(1024)
print 'oct:', x
x = hex(1024)
print 'hex:', x
bin: 0b10000000000
oct: 02000
hex: 0x400
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> bin(7)
'0b111'
>>> int(0b111)
7
>>>