Python bin() fonksiyonu nedir?

Python

Selamlar. Bu yazının konusu Python bin fonksiyonu nedir? olacak. Bir önceki yazı ascii hakkında yazılmıştı. Bu yazı birazcık kısa olacak. Çünkü çok uzun bir konu değil. Ancak bazı durumlarda sayısal değerlerin binary gösterimlerini merak ederiz. Bu yazıda bunu göreceğiz.

Python bin fonksiyonu nedir?

Python bin fonksiyonu nedir?

Örneğin elinizde 3 ya da 4 rakamları var. Bunların binary olarak gösterimini merak ediyorsunuz diyelim. Bunun için bin() fonksiyonunu kullanmanız yetecektir. Bu fonksiyonumuz parametre olarak numerik bir değer alacaktır. Eğer integer bir değer girilmediyse TypeError üzerinden bir hata fırlatır. Örnek:

Traceback (most recent call last):
  File "main.py", line 5, in <module>
    bin(num)
TypeError: 'str' object cannot be interpreted as an index

Ayrıca eğer değer tamsayı yani integer değilse __index__ metodu implement edilmelidir. Bununla ilgili yapılan örneklerle daha da anlaşılır hale gelecektir. Öncelikle normal gösterimlere bakalım:

num = bin(5)

print(num)

Çıktı olarak: 0b101 verilecektir. Bu aslında 0101 olmaktadır. Binary olarak sayıların en sağdan sola doğru hesaplandığını biliyoruz. Toplamak istersek 1 olan değerlerin toplanacağını da biliyoruz. Binary konusuna çok girmeden elimizde şöyle bir dizi olsun:

[8 == 0, 4 == 1, 2 == 0, 1 == 1]

Eşitliği 1 olan sayılar toplanacaktır yani 4 + 1 = 5. Kısacası değerin çıktısının bu olduğunu bilelim. 0b ise binary değer olduğunu bize söylemekte. Eğer 0b önekini istemiyorsak format kullanabiliriz. İki yöntemli format göstereceğim. İkinci formatlama Python 3.6 ve sonrasında geçerlidir.

with_b = format(5, '#b')

with_b_2 = f'{5:#b}'

without_b = format(5, 'b')

without_b_2 = f'{5:b}'

print(f"With B: {with_b} - {with_b_2}")

print(f"Without B: {without_b} - {without_b_2}")

Çıktılar şöyle olacaktır:

With B: 0b101 - 0b101
Without B: 101 - 101

__index__ fonksiyonu

Bu fonksiyon ile bir int nesnesi olmayan değerleri kullanarak integer döndürürüz. Şöyle bir örnek verelim:

class Binary:
    num = 5
    
    def __index__(self):
        return self.num


num = bin(Binary())

print(num)

Normalde Binary isimli sınıf direkt olarak bir integer türe sahip değil. Ancak index fonksiyonunu kullanarak sınıfın türünü integer yaptık. Burada dikkat etmemiz gereken şey ise integer olmazsa olmazdır. Yani siz gidip de oraya ‘5’ girerseniz yine TypeError alacaksınız. Sizin yerinize tip dönüşümü yapan bir fonksiyon kullanmadınız yani. Bu fonksiyonla ilgili resmi sitedeki dokümana bakabilirsiniz.

Arkadaşlar bu yazının konusu Python bin fonksiyonu nedir? oldu. Umarım faydalı bir yazı olmuştur. Eğer hatalı ya da eksik olarak gördüğünüz bir nokta var ise yorumda belirtirseniz düzeltirim.

Teşekkürler, iyi çalışmalar.