İkiye Tümleyen Hesaplayıcı Nedir?
İkiye tümleyen hesaplayıcı; onluk, ikilik ve onaltılık sayılar arasında dönüşüm yaparken negatif değerlerin bilgisayarların içinde nasıl saklandığını da gösterir. İkiye tümleyen (two's complement), günümüzdeki neredeyse tüm işlemcilerin işaretli tam sayıları depolamak için kullandığı standart yöntemdir; bu yüzden konuyu kavramak yazılımcılar, elektronik öğrencileri ve sayısal mantıkla uğraşan herkes için son derece önemlidir. Bu araç sayesinde istediğiniz tabandaki bir sayıyı girebilir, bit genişliğini (8, 16 ya da 32 bit) seçebilir ve hem ikiye tümleyen gösterimini hem de onluk karşılığını anında görebilirsiniz.
Hesaplayıcı Nasıl Kullanılır?
- Sayınızı giriş alanına yazın — onluk, ikilik veya onaltılık değer kabul edilir.
- Gerekirse girdiğiniz sayının tabanını seçin.
- Bit genişliğini belirleyin: 8 bit, 16 bit veya 32 bit.
- Sonuçları okuyun: ikilik, onaltılık ve işaretli onluk değer otomatik olarak görüntülenir.
Bit genişliği önemlidir çünkü saklanabilecek değer aralığını belirler. Örneğin 8 bitlik işaretli bir tam sayı -128 ile 127 arasındaki değerleri tutarken, 16 bitlik bir değer -32.768 ile 32.767 arasını kapsar.
Formülün Açıklaması
Bir ikilik sayının ikiye tümleyenini bulmak için iki adım izlenir:
$$\text{Twos Complement} = \left(\sim \text{Number}_{\,2}\right) + 1 \pmod{2^{\text{Bit Width}}}$$- Tüm bitleri tersleyin (her 0'ı 1, her 1'i 0 yapın). Bu işlem bire tümleyeni (one's complement) verir.
- Sonuca 1 ekleyin.
En soldaki bit işaret biti görevi görür: 0 pozitif, 1 negatif anlamına gelir. Negatif bir onluk sayıyı ikiye tümleyene çevirmek için formül \(2^{n} + \text{değer}\) şeklindedir; burada \(n\) bit genişliğidir.
Çözümlü Örnek
-5 sayısını 8 bitlik ikiye tümleyene çevirelim:
- +5 değerinin ikilik gösterimiyle başlayın:
0000 0101. - Bitleri tersleyin:
1111 1010. - 1 ekleyin:
1111 1011.
Böylece -5 değeri 1111 1011 olarak saklanır ve bu da onaltılık tabanda FB demektir. Kontrol edelim: \(251 - 256 = -5\) (işaretsiz değer eksi 256).
İşaretli Tam Sayı Aralıkları Bit Genişliğine Göre
İkiye tümleyen, bilgisayarların işaretli tam sayıları temsil etmesinin standart yoludur. Verilen bir bit genişliği \(n\) için, bir bit işaret biti olarak işlev görür, bu nedenle temsil edilebilir işaretli aralık \(-2^{n-1}\) ile \(2^{n-1}-1\) arasında yer alırken, aynı bitlerin işaretsiz yorumlanması \(0\) ile \(2^{n}-1\) arasında yer alır. Tüm aritmetik modulo \(2^{n}\) olacak şekilde sarılır.
| Bit Genişliği \(n\) | İşaretli Min \(-2^{n-1}\) | İşaretli Maks \(2^{n-1}-1\) | İşaretsiz Maks \(2^{n}-1\) | Modülüs \(2^{n}\) |
|---|---|---|---|---|
| 8 | -128 | 127 | 255 | 256 |
| 16 | -32,768 | 32,767 | 65,535 | 65,536 |
| 32 | -2,147,483,648 | 2,147,483,647 | 4,294,967,295 | 4,294,967,296 |
| 64 | -9,223,372,036,854,775,808 | 9,223,372,036,854,775,807 | 18,446,744,073,709,551,615 | 18,446,744,073,709,551,616 |
Örneğin, ondalık 5'in 8 bitlik formda ikiye tümleyeni, işaretsiz bayt olarak okunduğunda 251'dir ve işaretli bir değer olarak \(-5\) temsil eder.
Yaygın 8 Bitlik Değerler İçin Ondalık–İkili–Onaltılık Referans
Aşağıdaki tablo, temsili işaretli ondalık değerleri 8 bitlik ikiye tümleyen ikili ve onaltılık biçimlerine eşler. Negatif sayıların en anlamlı biti 1 olarak ayarlanmıştır. Bir değeri tersine çevirmek için, tüm 8 bitleri ters çevirin ve 1 ekleyin.
| İşaretli Ondalık | 8 Bitlik İkili | Onaltılık | İşaretsiz Değer |
|---|---|---|---|
| -128 | 1000 0000 | 0x80 | 128 |
| -64 | 1100 0000 | 0xC0 | 192 |
| -5 | 1111 1011 | 0xFB | 251 |
| -1 | 1111 1111 | 0xFF | 255 |
| 0 | 0000 0000 | 0x00 | 0 |
| 1 | 0000 0001 | 0x01 | 1 |
| 5 | 0000 0101 | 0x05 | 5 |
| 64 | 0100 0000 | 0x40 | 64 |
| 127 | 0111 1111 | 0x7F | 127 |
İkili formu bağımsız olarak doğrulamak için, 8 bitlik deseni 11111011 ondalığa geri dönüştürebilirsiniz; bu, işaretsiz bayt olarak 251'e eşittir (işaretli olarak \(-5\) şeklinde yorumlanır).
Anahtar Terimler ve Tanımlar
- Bit genişliği
- Bir tam sayıyı depolamak için kullanılan ikili basamak sayısı (yaygın olarak 8, 16, 32 veya 64). Modülüs \(2^{n}\) değerini ve dolayısıyla temsil edilebilir değerlerin aralığını belirler.
- İşaret biti
- İşaretli bir sayının negatif (1) veya negatif olmayan (0) olduğunu gösteren tek bir bit. İkiye tümlyen sisteminde en yüksek sıradaki bittir.
- En anlamlı bit (MSB)
- İkili sayıdaki en sol, en yüksek değerli bit. İşaretli ikiye tümleyen değerinde MSB, işaret biti olarak da işlev görür.
- Birine tümleyen
- Bir sayının bitsel tersi — her 0, 1 olur ve her 1, 0 olur (\(\overline{B}\)). İkiye tümleyen oluşturmak için 1 eklemeden önceki ara adımdır.
- İkiye tümleyen
- Baskın işaretli tam sayı kodlaması: bir değeri tersine çevirmek için tüm bitleri ters çevirin ve 1 ekleyin; yani \(\overline{B}+1 \pmod{2^{n}}\). Sıfırın tek bir temsilini verir ve aynı donanımın işaretli ve işaretsiz sayıları toplamasını sağlar.
- Taşma / sarılma
- Bir sonuç, bit genişliğinin temsil edilebilir aralığını aştığında gerçekleşir; değer modulo \(2^{n}\) olacak şekilde sarılır. Örneğin, 8 bitlik maksimum 127'ye 1 eklemek -128'e sarılır.
- İşaretli ve işaretsiz tam sayı
- İşaretli tam sayı, ikiye tümleyen kullanarak negatifleri temsil edebilir (aralık \(-2^{n-1}\) ile \(2^{n-1}-1\) arasında); işaretsiz tam sayı her bir bit desenini negatif olmayan olarak değerlendirir (aralık \(0\) ile \(2^{n}-1\) arasında). Bitler özdeştir — yalnızca yorum farklıdır.
Sıkça Sorulan Sorular
Bilgisayarlar neden ikiye tümleyen kullanır? Bu yöntem, toplama ve çıkarma işlemlerinin aynı devreyle yapılmasını sağlar ve işaret-büyüklük ya da bire tümleyen yöntemlerinin aksine sıfırın tek bir gösterimi vardır.
Sayım bit genişliği için fazla büyükse ne olur? Değer taşar (overflow) ve baştan dolanarak beklenmedik bir sonuç üretir. Bunu önlemek için daha geniş bir bit genişliği seçin.
Normal onluk sayıya nasıl geri dönerim? İşaret biti 1 ise tekrar ikiye tümleyenini alıp başına eksi işareti koyun; 0 ise sayıyı normal bir ikilik sayı gibi okuyun.