Bit İşlemleri Hesaplama (Programcı Hesap Makinesi: AND, OR, XOR)

Bit işlemleri sayıların ikilik basamakları üzerinde tek tek yapılır: AND iki bit de 1 ise 1, OR en az biri 1 ise 1, XOR bitler farklıysa 1 verir. 12 AND 10 = 1100 AND 1010 = 1000 = 8; 12 OR 10 = 14; 12 XOR 10 = 6. Sola kaydırma 2'nin kuvvetiyle çarpar: 11 << 2 = 44.

Son güncelleme: · Yazılım ve bilişim hesaplamaları

Hesaplama formu

Sayıların tabanını ve bit genişliğini seç, sayıları gir ve işlemi seç. Sonuç dört tabanda gösterilir.

Seçili tabanda yaz (onaltılıkta A-F). 0x, 0b, 0o önekleri ve gruplama boşluğu kabul edilir; eksi sayı ikiye tümleyenle alınır.

Seçili tabanda yaz (onaltılıkta A-F). 0x, 0b, 0o önekleri ve gruplama boşluğu kabul edilir; eksi sayı ikiye tümleyenle alınır.

Ne hesaplaman gerektiğinden emin değil misin? Hesap asistanına sor, uygun hesaplayıcıyı birlikte bulalım.

Sonucun burada görünecek

Soldaki formu doldurup Hesapla'ya bas; ana sonuç, dağılım ve adım adım hesap burada açılır.

Örnek: 12 AND 10 (onluk) 8 Örneği incele

Bit işlemleri nasıl yapılır?

Sayıları aynı bit genişliğinde ikilik yaz ve basamakları alt alta getir. 12 = 0000 1100, 10 = 0000 1010 (8 bit). AND sonucu her sütunda iki bit de 1 ise 1'dir: 0000 1000 = 8.

XOR, aynı maskeyle iki kez uygulanınca sayıyı geri verir: (A XOR B) XOR B = A. 0xFF XOR 0x0F = 0xF0; bu özellik bit çevirme ve basit şifrelemede kullanılır.

NOT bütün bitleri ters çevirir. 8 bitte NOT 0 = 1111 1111 = 255 (işaretsiz) ya da −1 (işaretli). İşaretli sayılar ikiye tümleyenle tutulur: −x = NOT x + 1.

Sola kaydırma (<<) bitleri sola iter ve sağdan 0 ekler, yani 2ⁿ ile çarpar; sağa mantıksal kaydırma (>>) soldan 0 ekler ve 2ⁿ'ye bölüp aşağı yuvarlar. Sabit genişliğin dışına taşan bitler atılır; hesaplayıcı bunu uyarıyla gösterir.

Toplama, çıkarma, çarpma ve tam bölme işaretli tam sayıyla yapılır. 8 bitte 127 + 1 = −128 olur: sonuç aralığa sığmadığı için sarılır (taşma).

Formül

AND · OR · XOR
1∧1 = 1, diğerleri 0 · 0∨0 = 0, diğerleri 1 · a⊕b = 1 ⇔ a ≠ b
İkiye tümleyen
−x = (NOT x) + 1 (mod 2^n)
Kaydırma
A << n = A × 2^n (mod 2^w), A >> n = ⌊A ÷ 2^n⌋

Örnek hesap

Aşağıdaki örnek, şu değerlerle (Sayıların tabanı: Onluk (DEC), Birinci sayı (A): 12, İşlem: AND (ve), İkinci sayı (B): 10, Bit genişliği: 8 bit (bayt)) hesaplayıcının kendisiyle hesaplanmıştır.

Örnek hesap adımları
AdımHesapDeğer
İkilik gösterim0000 1100 AND 0000 1010 = 0000 10000x08
KuralHer bit: iki bit de 1 ise 1, değilse 08
12 AND 10 (onluk)8
Örneğin tablosu (3 satır)
Değerİkilik (8 bit)OnaltılıkOnluk
A0000 11000C12
B0000 10100A10
Sonuç0000 1000088

Kaynaklar

Son güncelleme: (içerik ya da kullanılan verinin son değiştiği ya da kontrol edildiği tarih).

Hesaba katılmayanlar

  • Yalnızca tam sayılar; kayan noktalı (IEEE 754) sayıların bit gösterimi hesaplanmaz.
  • Sağa kaydırma mantıksaldır (soldan 0 girer); aritmetik kaydırma ve döndürme (rotate) işlemleri yok.
  • Bit genişliği 8, 16, 32 ya da 64 bittir; seçilen genişliğe sığmayan girdi reddedilir.
  • Tam bölme sıfıra doğru keser ve kalanın işareti bölünenin işaretidir (C ve Java davranışı); matematikteki mod işlemi için mod alma sayfasını kullan.

Sıkça sorulan sorular

AND, OR ve XOR arasındaki fark nedir?

AND yalnızca iki bit de 1 iken 1 verir (maskeleme), OR bitlerden biri 1 ise 1 verir (bit açma), XOR bitler farklıysa 1 verir (bit çevirme). 12 ve 10 için sonuçlar sırasıyla 8, 14 ve 6'dır.

İkiye tümleyen (two's complement) nedir?

Bilgisayarların eksi tam sayıları tutma yöntemidir: sayının bitleri ters çevrilip 1 eklenir. 8 bitte −1 = 1111 1111, −128 = 1000 0000. En soldaki bit işaret bitidir.

Bit kaydırma ne işe yarar?

Sola kaydırma 2'nin kuvvetiyle hızlı çarpma, sağa kaydırma hızlı bölme yapar; bayrak ve maske oluşturmada da kullanılır: 1 << 5 = 32, beşinci biti açan maskedir.

Onaltılık (hex) sayıyı nasıl girerim?

Tabanı onaltılık seç ve sayıyı 0-9 ve A-F basamaklarıyla yaz; 0x öneki ve gruplama boşluğu kabul edilir (0xFF, FF, ff aynıdır).

Taşma (overflow) neden olur?

Sonuç seçilen bit genişliğinin aralığına sığmazsa üstteki bitler atılır. 8 bit işaretli aralık −128 ile 127'dir; 127 + 1 sonucu −128'e sarılır.