Bire Tümleyen Hesaplama

Bitlerini terslemek ve bire tümleyeni bulmak için bir ikili sayı girin.

Nasıl hesaplanır?

Bir ikili sayının bire tümleyeni, her bitin terslenmesiyle bulunur: her 0, 1 olur; her 1, 0 olur. Araç rakamları yazdığınız gibi alır; bu yüzden genişlik, girdiğiniz karakter sayısıdır ve baştaki sıfırlar korunur ve terslenir. Terslenmiş diziyi, bit sayısını ve orijinal sayının onluk değerini verir: Σ bi × 2i; burada bi, sağdan sayılan i. konumdaki bittir. Onluk değer tam basamak aritmetiğiyle hesaplanır; 67 bitlik tamamı 1 olan bir girdi bile 147.573.952.589.676.412.927 olarak görünür. n bitlik bir girdi için tümleyen (2n − 1) − değer'e eşittir. Girdi yalnızca 0 ve 1 içerebilir ve en çok 2048 basamak olabilir: boşluk, 0b öneki, başka rakamlar ya da boş alan sonuç vermez.

Örnek hesaplama

8 bitlik 00101100 sayısını alalım. Onluk değeri 32 + 8 + 4 = 44'tür. Her biti sırayla tersleyin: 0→1, 0→1, 1→0, 0→1, 1→0, 1→0, 0→1, 0→1; sonuç 11010011 olur. Formülle kontrol: (28 − 1) − 44 = 255 − 44 = 211 ve ikili 11010011 = 128 + 64 + 16 + 2 + 1 = 211'dir. Yani tümleyen 11010011'dir; 8 bittir ve orijinal sayı onluk 44'tür.

Bu örneği dene →

Sık yapılan hatalar

  • Bire tümleyeni ikiye tümleyenle karıştırmak. İkiye tümleyen, bire tümleyen artı 1'dir; bu yüzden her sayı için farklı sonuç verirler.
  • Baştaki sıfırları atmak. 00101100 ile 101100 farklı genişliklerdir ve tümleyenleri, 11010011 ile 010011, de farklıdır.
  • 0b1011 veya 1011 0010 gibi önek ya da ayırıcı yazmak. Yalnızca 0 ve 1 rakamları kabul edilir; önce bunları silin, yoksa sonuç çıkmaz.
  • Onluk sayı veya onaltılık rakam girmek. Girdi yalnızca ikili okunur; 44 gibi bir değer sonuç vermez.
  • Çıktıyı günlük aritmetikte sayının negatifi saymak. İşaretli bire tümleyen sisteminde negatifi temsil eder; ama araç yalnızca bitleri tersler, işareti yorumlamaz.

Bu hesaplama hakkında

Bir ikili sayının bire tümleyeni, sabit bir bit genişliği içindeki her bitin terslenmesiyle bulunur — her 0, 1 olur ve her 1, 0 olur. Örneğin 8 bitlik 00101100 değerinin bire tümleyeni 11010011'dir. Bu, bire tümleyene 1 eklenerek elde edilen ve neredeyse tüm modern işlemcilerin negatif sayıları göstermek için gerçekte kullandığı ikiye tümleyenden (two's complement) farklıdır.

Bazı erken dönem ana bilgisayarlar ve mini bilgisayarlar dahil eski bilgisayar mimarileri, işaretli tam sayıları göstermek için doğrudan bire tümleyeni kullanırdı; bunun garip bir yanı sıfır için iki farklı bit deseni (pozitif sıfır ve negatif sıfır) üretmesidir. Bire tümleyen aritmetiği günümüzde en çok RFC 1071'de tanımlanan İnternet sağlama toplamı (checksum) algoritmasında yaşamaya devam eder; bu algoritma, bit hatalarını yakalamak için yararlı özellikleri ve temiz bir şekilde taşması nedeniyle IP, TCP ve UDP başlık sağlama toplamlarını özellikle bire tümleyen toplamayla hesaplar.

Bu faydalı oldu mu?

En fazla 3 tepki seçebilirsiniz.

Yorumlar

  • İlk yorumu siz yazın.

Popüler hesaplayıcılar

Tüm Hesaplayıcılar