İkiye tümleyen nedir?
İkiye tümleyen, bilgisayarların işaretli tam sayıları — pozitif veya negatif olabilen sayıları — sabit sayıda bit kullanarak depolamasının standart yoludur. Eksi işareti için ayrı bir sembol ayırmak yerine, negatif sayılar, sıradan ikili toplamanın işaret için özel bir işlem gerektirmeden çalışacağı şekilde kodlanır. Neredeyse her modern CPU tam sayıları bu şekilde temsil eder.
Bu hesaplayıcı bir ondalık tam sayı ve bir bit genişliği (8, 16 veya 32 bit) alır ve onun ikiye tümleyen desenini hem ikili hem de onaltılık olarak gösterir.
Nasıl çalışır?
Seçilen bitlik bir genişlik için her değer işaretsiz bir bit deseni olarak depolanır:
- sayısı negatif değilse, deseni basitçe ‘nin ikilisidir; başına sıfırlar eklenerek bite tamamlanır.
- sayısı negatifse, deseni ‘nin ikilisidir.
İkinci durumda negatif olduğundan, değeri ‘den küçük pozitif bir değerdir, bu yüzden her zaman bite sığar. En anlamlı (en soldaki) bit, her negatif sayı için ve her negatif olmayan sayı için olur — o bit işaret görevi görür.
Formül
Sonuç ardından tam olarak ikili rakamla (veya onaltılık rakamla) yazılır.
Çözümlü örnekler
Örnek 1: pozitif bir sayı
değerini bitte kodlayın. olduğundan, desen sadece ‘in ikilisidir; sekiz rakama tamamlanır:
Örnek 2: eksi bir
değerini bitte kodlayın. olduğundan, hesaplayın:
Eksi bir, genişlik ne olursa olsun her zaman kesintisiz bir birler dizisidir.
Örnek 3: eksi beş
değerini bitte kodlayın. hesaplayın:
Referans tablosu (8 bit)
| Ondalık | İkiye tümleyen ikili | Onaltılık |
|---|---|---|
| 5 | 00000101 | 0x05 |
| 0 | 00000000 | 0x00 |
| -1 | 11111111 | 0xFF |
| -5 | 11111011 | 0xFB |
| 127 | 01111111 | 0x7F |
| -128 | 10000000 | 0x80 |
Notlar
- bitlik işaretli bir tam sayı ile arasını kapsar; bit ile arasını kapsar; bit kabaca milyarı kapsar. Seçilen aralığın dışındaki değerler moduna göre sarmalanır.
- Baştaki bit işarettir: negatif olmayan bir sayıyı, ise negatif bir sayıyı işaretler.
- Sıradan bir negatif olmayan sayıyı işaret biti olmadan ikiliye dönüştürmek için ondalıktan ikiliye çeviriciyi veya diğer tabanlar için genel sayı sistemi çeviriciyi kullanın.
Sıkça Sorulan Sorular
İkiye tümleyende -1 nedir?
Herhangi bir genişlikte hepsi birdir: 8 bit için (0xFF), 16 bit için (0xFFFF) ve böyle devam eder.
Negatif bir sayının ikiye tümleyenini elle nasıl bulurum?
Sayının büyüklüğünü ikili olarak yazın, her biti tersleyin, sonra bir ekleyin. 8 bitte için: sayısı ‘dir, terslemek verir ve bir eklemek verir — ile aynı sonuç.
Bit genişliği neden önemlidir?
Genişlik, desenin kaç bit kapladığını ve dolayısıyla depolayabileceğiniz sayıların aralığını sabitler. Aynı ondalık değer, genişlik büyüdükçe daha uzun bir baştaki sıfır veya bir dizisi üretir.