İkili Hesaplayıcı
İki ikili sayı girin; toplamı, farkı, çarpımı ya da bölümü alın — elde, ödünç alma, kısmi çarpımlar ve uzun bölme adımları sütun sütun gösterilir. Bitsel moda geçip 4 ila 128 bit genişliğinde VE, VEYA, XOR, DEĞİL, kaydırma ve döndürme uygulayın. Ücretsiz, üyelik gerektirmez ve hiçbir şey tarayıcınızdan ayrılmaz.
Yalnızca ikili rakamlar, isteğe bağlı baştaki eksi işaretiyle. Boşluklar ve alt çizgiler yok sayılır; bu yüzden 1011 0110 çalışır.
Sonuç
1 0010
İkili
18
Ondalık
12
Onaltılık
22
Sekizli
5 bit
Uzunluk
Çalışma
| Satır | 4 | 3 | 2 | 1 | 0 |
|---|---|---|---|---|---|
| Gelen elde | 1 | 1 | 0 | 1 | 0 |
| A | 0 | 1 | 1 | 0 | 1 |
| B | 0 | 0 | 1 | 0 | 1 |
| Toplam | 1 | 0 | 0 | 1 | 0 |
İkili Hesaplayıcı Nasıl Kullanılır
- 1. İşlem türünü seçin. Aritmetik toplar, çıkarır, çarpar ya da böler. Bitsel işlemler, sabit genişlikteki örüntülerin tek tek bitleriyle çalışır.
- 2. Sayılarınızı girin. Yalnızca 0 ve 1 kullanın. Baştaki eksi işareti,
0böneki, boşluklar ve alt çizgiler kabul edilir; bu yüzden1011 0110tek bir sayı olarak okunur. - 3. Bir genişlik seçin (yalnızca bitsel). DEĞİL, kaydırma ve döndürme bir genişlik olmadan anlam taşımaz; bu yüzden hesaplayıcı 4, 8, 16, 32, 64 ya da 128 bit ister.
- 4. Sonucu ve çalışmayı okuyun. Yanıt ikili, ondalık, onaltılık ve sekizli olarak görünür; altında sütun çalışması yer alır.
İkili Toplama Nasıl Çalışır
İkili toplama, ondalık toplamayla aynı sütun kurallarını izler; ancak bir sütun 10 yerine 2'de taşar. Bir sütundaki iki biti ve sağdan gelen varsa eldeyi toplayın. Toplam 0 ya da 1 ise yazın. 2 ya da 3 ise düşük biti (0 ya da 1) yazın ve bir sonraki sütuna 1 elde taşıyın.
| Sütun toplamı | Yazılan bit | Çıkan elde |
|---|---|---|
| 0 + 0 + 0 = 0 | 0 | 0 |
| 1 + 0 + 0 = 1 | 1 | 0 |
| 1 + 1 + 0 = 10 (2) | 0 | 1 |
| 1 + 1 + 1 = 11 (3) | 1 | 1 |
1101 (13) ile 101 (5) toplayın. Hesaplayıcı iki sayıyı da beş sütuna tamamlar ve her birine gelen eldeyi gösterir — soldan sağa 11010 — ve sonuç 10010 olur, yani 18. Elde satırı, elle toplarken insanların en çok kaçırdığı kısımdır.
Çıkarma, Çarpma ve Bölme
Çıkarma tersi yönde işler: bir sütun 1 − 1 − 1 ya da 0 − 1 gerektirdiğinde soldaki sütundan 1 ödünç alır; burada bu 2 değerindedir. 1000 − 0011 işleminde bir ödünç alma üç sütun boyunca yayılır ve 0101 (8 − 3 = 5) ile biter. A, B'den küçükse hesaplayıcı küçüğü büyükten çıkarır ve sonuca eksi işareti verir.
Çarpma kaydır ve topla işlemidir. Çarpandaki her 1, çarpılanın o bitin konumu kadar sola kaydırılmış bir kopyasını katar; 0 hiçbir şey katmaz. 1011 × 101 (11 × 5) için 1'ler 0. ve 2. konumlardadır; kısmi çarpımlar 1011 ve 101100'dür ve toplamları 110111 — 55.
Bölme çok kolay bir tahmin adımı olan uzun bölmedir. Bölünenden her seferinde bir bit indirin; bölen elinizdekine sığarsa onu çıkarın ve bölümde 1 yazın, aksi halde 0 yazın. 1100100 ÷ 111 (100 ÷ 7) bölüm olarak 1110 (14) ve kalan olarak 10 (2) verir. Negatif işlenenlerle bölüm sıfıra doğru kesilir ve kalanın işareti A'nınkidir; C, Java ve JavaScript'te olduğu gibi.
Seçilen Genişlikte Bitsel İşlemler
| A | B | VE | VEYA | XOR | NAND | NOR | XNOR |
|---|---|---|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 0 | 1 | 1 | 1 |
| 0 | 1 | 0 | 1 | 1 | 1 | 0 | 0 |
| 1 | 0 | 0 | 1 | 1 | 1 | 0 | 0 |
| 1 | 1 | 1 | 1 | 0 | 0 | 0 | 1 |
4 bitte 1100 ve 1010 ile VE 1000, VEYA 1110 ve XOR 0110 verir. DEĞİL, genişlik içindeki her biti çevirir; aynı 1100, 4 bitte 0011 olur ama 8 bitte 11110011 olur — genişliğin neden önemli olduğu budur.
Sola kaydırma n, her biti n yer yukarı taşır ve boşlukları sıfırlarla doldurur; en üstten taşan bitler kaybolur ve hesaplayıcı bunları listeler. Mantıksal sağa kaydırma boşlukları sıfırlarla doldurur. Aritmetik sağa kaydırma en üst biti kopyalar, bu yüzden eksi bir sayı eksi kalır: 2 kez sağa kaydırılan 10110110 mantıksal olarak 00101101, aritmetik olarak ise 11101101 (−19) olur. Döndürmeler bir uçtan düşen bitleri diğer uca geri sarar, böylece hiçbir şey kaybolmaz.
Aritmetik modda taşma yok
Buradaki aritmetik her uzunlukta kesindir; bu yüzden 11111111 + 1 0 değil, 100000000'dır. Gerçek donanım sabit sayıda bit tutar ve sarar. Bu davranışı — ve buna bağlı işaretli aralıkları görmek için İki Tümleyen Hesaplayıcı'yı kullanın.
Sık Yapılan Hatalar
- En soldaki sütuna gelen eldeyi unutmak. İki 8 bitlik sayıyı toplamak 9 bitlik bir yanıt verebilir. Hesaplayıcı fazladan sütunu tutar.
- Mantıksal ve aritmetik sağa kaydırmayı karıştırmak. Pozitif sayılarda aynı sonucu verirler; en üst biti 1 olan her örüntüde farklılaşırlar. Diller farklılık gösterir: Java'da
>>aritmetik,>>>mantıksaldır; C'de ise işaretli bir negatif değerde>>derleyiciye bağlıdır (yaygın derleyicilerde aritmetiktir). - Bir bit örüntüsünü yanlışlıkla işaretli sayı olarak okumak.
11110011, işaretsiz 243 ve iki tümleyende −13'tür. Bitsel sonuçlar hangisini kastettiğinizi anlayabilmeniz için ikisini de gösterir. - DEĞİL'in genişlikten bağımsız olduğunu varsaymak. Sınırsız bir tam sayıda 12'nin DEĞİL'i −13'tür. Sabit bir genişlik içinde ise bu, bu hesaplayıcının döndürdüğü tümleyen örüntüsüdür.
Sık sorulan sorular
- İkili sayılar nasıl toplanır?
- En sağdaki sütundan sola doğru çalışın; iki biti ve varsa eldeyi toplayın. Sütun toplamı 0 ya da 1 ise olduğu gibi yazılır; 2 ise 0 yazılır ve 1 elde taşınır, 3 ise 1 yazılır ve 1 elde taşınır. Örneğin 1101 + 101 = 10010. Hesaplayıcı her sütuna gelen eldeyi gösterir.
- İkili sayılar nasıl çıkarılır?
- Sağdan başlayarak sütun sütun çıkarın. Bir sütun sıfırın altına inecekse soldaki sütundan 1 ödünç alın; bu, mevcut sütuna 2 ekler. İkinci sayı daha büyükse çıkarmayı ters sırada yapın ve yanıta eksi işareti koyun. 1000 − 11 = 101 (8 − 3 = 5).
- Mantıksal ve aritmetik sağa kaydırma arasındaki fark nedir?
- Mantıksal sağa kaydırma boşalan üst bitleri sıfırlarla doldurur; bu nedenle örüntüyü işaretsiz bir sayı olarak ele alır. Aritmetik sağa kaydırma özgün en üst biti kopyalar; bu nedenle negatif bir iki tümleyen sayısı negatif kalır. İkisi de değeri yarıya indirir, ama yalnızca aritmetik kaydırma negatif değerleri doğru yuvarlar.
- VE, VEYA ve XOR ne yapar?
- Her ikisi iki bit örüntüsünü sütun sütun karşılaştırır. VE, yalnızca ikisi de 1 olduğunda 1 verir; VEYA, en az biri 1 olduğunda 1 verir; XOR ise tam olarak biri 1 olduğunda 1 verir. VE bitleri maskelemek, VEYA bit ayarlamak, XOR ise bitleri çevirmek ya da farkları karşılaştırmak için kullanılır.
- Bu hesaplayıcı negatif ikili sayıları işleyebilir mi?
- Aritmetik modda evet: önüne eksi işareti koyun ve işaret kuralları kesin sonuca uygulanır. Bitsel mod bunun yerine düz bit örüntüleri alır, çünkü negatif bir sayının örüntüsü genişliğe bağlıdır. Negatif bir değerin örüntüsünü bulmak için İki Tümleyen Hesaplayıcı'yı kullanın.
- Ne kadar büyük bir ikili sayı girebilirim?
- Sabit bir sınır yok, çünkü aritmetik keyfi duyarlıkta tam sayılar kullanır. Sütun çalışması 64 bite kadar işlenenler için çizilir; bunun ötesinde adım tablosu olmadan yine kesin sonuç alırsınız. Bitsel işlemler seçilen genişlikle, en fazla 128 bitle sınırlıdır.