Python, tam sayıları ikili gösterimlerine dönüştürmek için çeşitli verimli yollar sunar. Bu kılavuz, yerleşik işlevlerden bit manipülasyonuna kadar farklı beceri seviyelerine ve kullanım durumlarına hitap eden çeşitli yöntemleri ele almaktadır.
İçindekiler
bin()
Fonksiyonunun Kullanımıformat()
Yönteminin Kullanımı- f-string’lerin Kullanımı
- Bit Manipülasyon Yöntemi
bin()
Fonksiyonunun Kullanımı
En basit yaklaşım, Python’ın yerleşik bin()
fonksiyonunu kullanmaktır. Bir tam sayı alır ve “0b” önekiyle ikili karşılığını bir dize olarak döndürür.
decimal_number = 10
binary_number = bin(decimal_number)
print(f"İkili: {binary_number}") # Çıktı: İkili: 0b1010
# "0b" önekinin kaldırılması:
binary_number_no_prefix = binary_number[2:]
print(f"İkili (öneksiz): {binary_number_no_prefix}") # Çıktı: İkili (öneksiz): 1010
format()
Yönteminin Kullanımı
format()
yöntemi özlü bir alternatif sunar:
decimal_number = 10
binary_number = format(decimal_number, 'b')
print(f"İkili: {binary_number}") # Çıktı: İkili: 1010
Bu, doğrudan “0b” öneki olmadan ikili dizeyi üretir.
f-string’lerin Kullanımı
Python 3.6’da tanıtılan f-string’ler, son derece okunabilir ve modern bir çözüm sunar:
decimal_number = 10
binary_number = f"{decimal_number:b}"
print(f"İkili: {binary_number}") # Çıktı: İkili: 1010
Bit Manipülasyon Yöntemi
Daha derin bir anlayış için, bitsel operatörler kullanarak manuel dönüştürme eğitici olabilir. Büyük sayılar için daha az verimli olsa da, altta yatan süreci aydınlatır.
def ondalik_ikiliye(n):
if n == 0:
return "0"
ikili = ""
while n > 0:
kalan = n % 2
ikili = str(kalan) + ikili
n //= 2
return ikili
decimal_number = 10
binary_number = ondalik_ikiliye(decimal_number)
print(f"İkili: {binary_number}") # Çıktı: İkili: 1010
Bu fonksiyon, bölüm 0 olana kadar kalanı sonuca ekleyerek 2’ye tekrar tekrar böler. Bu yaklaşım, eğitim amaçları veya ince ayar gerektiren durumlar için en uygunudur.
Çoğu uygulama için, verimlilikleri ve okunabilirlikleri nedeniyle bin()
fonksiyonu veya f-string’ler önerilir. Bit manipülasyon yöntemi, dönüştürme süreci hakkında değerli bir içgörü sunar.