Selamun Aleyküm arkadaşlar.
İki binary sayı ile çıkarma işlemi yapmanın şöyle bir yolu var, ilk sayıyı aynen alıyoruz, 2. sayının ise 2’ye göre tümleyenini alıp ilk sayı ile topluyoruz. Böylece çıkarma işlemi yapmış oluyoruz.
İkiye göre tümleyen şöyle alınıyor; önce binary sayının 1’e göre tümleyeni alınıyor (1’leri 0, 0’ları 1 yapılıyor), ardından bu sayıya 1 ekleniyor.
Örnek: 1101 sayısının 2’ye göre tümleyenini alalım.
- Önce 1’e göre tümleyenini alalım, 1101 -> 0010
- Ardından 1 ekleyelim, 0010 +1 = 0011
1101 sayısının 2’ye göre tümleyeni 0011 imiş.
Amacım python’da ikilik bir sayının 2’ye göre tümleyenini aldıktan sonra başka bir ikilik sayı ile toplayarak çıkarma işlemi yapmak. Kafam durdu resmen. Bitsel operatörlere baktım, (~) operatörü binary sayının tersini alıyormuş, fakat komut penceresi üzerinde yaptığım denemelerde arzu ettiğim çıktıyı göremiyorum.
Şöyleki;
x = 0b10110 # x'in değeri: 22 (decimal)
y = ~x
print(bin(y))
Çıktı: -0b10111 # y'nin değeri: -23 (decimal)
Bu adreste (~) operatörünün bitleri ters çevireceği yazıyor. Ben mi yanlış yapıyorum? Gözümden kaçan bir yer mi var anlamadım. Müsait olan bakabilirse sevinirim, teşekkürler…