İkiye Tümleyen Hesaplama

Negatif sayının bit gösterimini bulun.

Nasıl hesaplanır?

Tam sayı n ve w bitlik genişlik verildiğinde araç önce n'nin −2w−1 ≤ n ≤ 2w−1 − 1 aralığına sığıp sığmadığına bakar. Negatif n için n + 2w hesaplanır; bu, bitleri ters çevirip 1 ekleme kuralıyla birebir aynı sonuçtur. Pozitif sayılar ve sıfır normal ikili olarak yazılır. Sonuç, soldan sıfırla tam w basamağa tamamlanır. Genişlik 2 ile 32 arasında bir tam sayı olmalıdır. Başka her durumda sonuç çıkmaz: kesirli sayı, 1 veya 33 bitlik genişlik ya da o genişliğin aralığı dışındaki değer (örneğin 8 bitte 128 veya −129). Çıktı onluk bir değer değil bit dizisidir ve birimi yoktur.

Örnek hesaplama

−42 sayısını 8 bitte yazalım. 8 bit için izin verilen aralık −128 ile 127 arasıdır, dolayısıyla −42 sığar. +42 = 00101010 ile başlıyoruz. Her biti ters çevirince 11010101 olur, 1 eklenince 11010110 elde edilir. Formül de aynı sonucu verir: −42 + 28 = 256 − 42 = 214 ve 214'ün ikili yazımı 11010110'dur. Araç 11010110 yazar. Baştaki 1, sayının negatif olduğunu gösterir.

Bu örneği dene →

Sık yapılan hatalar

  • Genişliği çok dar seçmek. 8 bitte aralık −128 ile 127 arasındadır; 128 veya −129 sonuç vermez, bunlar için 16 bite çıkın.
  • Sonucu işaretsiz sayı gibi okumak. 11010110, 8 bitlik ikiye tümleyende −42'dir ama işaretsiz okursanız 214 olur.
  • Bit genişliğini unutmak. Aynı −1, 2 bitte 11, 4 bitte 1111, 32 bitte ise 32 tane 1'dir; bit sayısı kullandığınız sisteme uymalıdır.
  • Sayı kutusuna ikili ya da onaltılık dizi yazmak. Kutu −42 gibi sıradan bir onluk tam sayı bekler.
  • Aralığın simetrik olduğunu sanmak. İkiye tümleyende negatif değer, pozitiften bir fazladır: 8 bitte −128 (10000000) vardır ama +128 yoktur.

Bu hesaplama hakkında

İkiye tümleyen (two's complement), bilgisayarların ikili sistemde işaretli, pozitif ve negatif, tam sayıları göstermek için kullandığı standart yöntemdir: bir sayının ikiye tümleyenini bulmak için, ikili gösterimindeki her bit tersine çevrilir (bire tümleyen adı verilir) ve sonucuna 1 eklenir. Bu yöntem, bir sayıyı çıkarmanın onun ikiye tümleyenini eklemekle aynı şey olması sayesinde, tek bir ikili toplama devresinin özel bir mantığa gerek kalmadan hem toplama hem çıkarma işlemini yürütmesini sağlar.

Mikrodenetleyicilerden masaüstü işlemcilere kadar hemen hemen her modern CPU, işaretli tam sayıları saklamak için dahili olarak ikiye tümleyeni kullanır; çünkü bu yöntemde sıfır için tam olarak tek bir gösterim vardır (işaret-büyüklük veya bire tümleyen kodlamasının aksine, onlarda hem “pozitif sıfır” hem “negatif sıfır” bulunur) ve taşma (overflow) davranışı iyi tanımlı ve tutarlıdır; bu da onu bilgisayar bilimi öğrencileri, gömülü sistem mühendisleri ve düşük seviyeli ikili veya onaltılık veriyle uğraşan herkes için temel bir bilgi yapar.

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