2016-03-27 25 views
0

Python'da, ondalık sayıyı, işaret büyüklüğünü kullanarak python'da bir ikili sayıya dönüştürmek için bir işlev yazmaya çalışıyorum. Fonksiyon ondalık değerden ve bitlerin sayısından geçirilir. Başımı aritmetik etrafında almaya çalışırken bin() işlevini kullanmak istemedim.Python'da Büyüklük İkili Eşitlik

+0

um ... neden eksik 0 aptal ekliyor? Sizde onu temsil edecek bit sayısını belirttiğinizde, uzunluğu eşleştirmek için fazladan 0 eklemeniz gerekecek, hayır mı? –

+0

Ancak, bunu yapmak için daha iyi bir yol olmamalı mı? – user3277335

+0

Başımın tepesinden birisine teşekkür edemedim ama göründüğü gibi @Blckknght yaptı. –

cevap

2

Sadece 15 bit alıyorsunuz çünkü bu, number (ve onun işaretini) ikili olarak temsil etmeniz için gereken tek şey. while döngüsünüz number sıfır olduğunda, tüm bitleri henüz oluşturmamış olsa bile sıfırlanır. Bunun yerine, bit sayısına bağlı olarak range üzerinde for döngüsünü kullanmak için değiştirmek isteyebilirsiniz.

for _ in range(bits - 1): 
    rem = number % 2 
    s.push(rem) 
    number = number // 2 

Ayrıca tek operasyonda bölünme ve modül hem yapmak için buraya divmod kullanabilir.

İlgili konular