Dönüşüm

İkiye tümleyen hesaplayıcı

Ayarlar
Sıfırla
Sonuçu paylaş
Kaydet
Gömme
Hata bildir

Hesaplayıcıyı paylaş

Ücretsiz hesap makinemizi web sitenize ekleyin

Kaynak

Lütfen geçerli bir URL girin. Sadece HTTPS URL'leri desteklenir.

Stil

Giriş kenar odak rengi, anahtar kutusu işaretli rengi, seçili öğe üzerine gelindiğinde görülen renk vb.

Gelişmiş

Kullanım Koşulları'na kabul edin.

Önizleme

Hesap makinesini kaydet

Hesap Makinesi Ayarları

Lütfen izin verilen aralıkta bir değer girin.

Lütfen izin verilen aralıkta bir değer girin.

Lütfen izin verilen aralıkta bir değer girin.

Lütfen izin verilen aralıkta bir değer girin.

Hesaplayıcıyı paylaş

İ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 ww bitlik bir genişlik için her değer işaretsiz bir bit deseni olarak depolanır:

  • nn sayısı negatif değilse, deseni basitçe nn‘nin ikilisidir; başına sıfırlar eklenerek ww bite tamamlanır.
  • nn sayısı negatifse, deseni 2w+n2^w + n‘nin ikilisidir.

İkinci durumda nn negatif olduğundan, 2w+n2^w + n değeri 2w2^w‘den küçük pozitif bir değerdir, bu yüzden her zaman ww bite sığar. En anlamlı (en soldaki) bit, her negatif sayı için 11 ve her negatif olmayan sayı için 00 olur — o bit işaret görevi görür.

Formül

pattern(n)={nif n02w+nif n<0\text{pattern}(n) = \begin{cases} n & \text{if } n \ge 0 \\ 2^{w} + n & \text{if } n < 0 \end{cases}

Sonuç ardından tam olarak ww ikili rakamla (veya w/4w/4 onaltılık rakamla) yazılır.

Çözümlü örnekler

Örnek 1: pozitif bir sayı

n=5n = 5 değerini 88 bitte kodlayın. 505 \ge 0 olduğundan, desen sadece 55‘in ikilisidir; sekiz rakama tamamlanır:

5000001012=0x055 \rightarrow 00000101_2 = \text{0x05}

Örnek 2: eksi bir

n=1n = -1 değerini 88 bitte kodlayın. 1<0-1 < 0 olduğundan, 28+(1)=2561=2552^8 + (-1) = 256 - 1 = 255 hesaplayın:

255111111112=0xFF255 \rightarrow 11111111_2 = \text{0xFF}

Eksi bir, genişlik ne olursa olsun her zaman kesintisiz bir birler dizisidir.

Örnek 3: eksi beş

n=5n = -5 değerini 88 bitte kodlayın. 28+(5)=2565=2512^8 + (-5) = 256 - 5 = 251 hesaplayın:

251111110112=0xFB251 \rightarrow 11111011_2 = \text{0xFB}

Referans tablosu (8 bit)

Ondalıkİkiye tümleyen ikiliOnaltılık
5000001010x05
0000000000x00
-1111111110xFF
-5111110110xFB
127011111110x7F
-128100000000x80

Notlar

  • 88 bitlik işaretli bir tam sayı 128-128 ile 127127 arasını kapsar; 1616 bit 32,768-32{,}768 ile 32,76732{,}767 arasını kapsar; 3232 bit kabaca ±2.1\pm 2.1 milyarı kapsar. Seçilen aralığın dışındaki değerler 2w2^w moduna göre sarmalanır.
  • Baştaki bit işarettir: 00 negatif olmayan bir sayıyı, 11 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 11111111211111111_2 (0xFF), 16 bit için 111111111111111121111111111111111_2 (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 5-5 için: 55 sayısı 0000010100000101‘dir, terslemek 1111101011111010 verir ve bir eklemek 1111101111111011 verir — 2565=251256 - 5 = 251 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.

Hata bildirimi

Bu alan zorunludur.