2016-04-10 33 views
-1

Programlama ve python ve binary öğrenme konusunda yeniyim. Bir tam sayıyı ikilikli olarak el ile dönüştürmek istiyorum. Bunu bir liste ile yapmaya çalışıyorum. Bunu yapan fonksiyonlar olduğunu biliyorum ve bunu böyle yapmak için verimli değil. Teşekkürler! Eğer 'elle' ikili tamsayı dönüştürmek için çalışıyoruz söylüyorlar yanaTamsayıyı İkiliye Dönüştürme Matematik Modülü (Python)

import math 

binary = [] 

d = int(raw_input()) 
stepwise = int(math.log(d, 2)) 

while d != 0: 
    x = int(math.log(d, 2)) 
    y = 2 ** x 
    d -= y 

    if stepwise == x: 
     binary.append("1") 
    else: 
     binary.append("0") 

    stepwise -= 1 

print binary 
+2

Sorunuz nedir? –

+0

Tam sayıları ikili dizelere dönüştürmek için standart bir kütüphane işlevi var. Sadece ['bin()'] kullanın (https://docs.python.org/2/library/functions.html#bin)! –

cevap

0

, sana bin() işlevi kullanmak isteyen olmadıklarını varsayıyorum. İşte deneyebileceğin bir şey.

from math import* 
x= int(raw_input('Enter the decimal number')) 
n=[] 
while x>1: 
    y=int(x%2) 
    n=n+[y] 
    x=floor(x/2.0) 
if x==1: 
    n=n+[1] 
elif x==0: 
    n=n+[0] 
size=len(n) 
print 'binary equivalent =', 
y=-1 
while y>=-size: 
    print n[y], 
    y=y-1 
print '' 
+0

İstediğiniz bu mu? – kanayamalakar

+0

Evet, yapmaya çalıştığım şey bu. Teşekkürler! –