MCP ile bağlan →

Hesaplamaya Girin

Formül

Reklam

Sonuç

Kaydırma Sonucu
64
ondalık değer
Girilen sayı 16
Kaydırma miktarı (bit) 2

Bit kaydırma nedir?

Bit kaydırma, bir tam sayının ikili (binary) basamaklarını seçtiğiniz pozisyon sayısı kadar sola veya sağa taşır. Kaydırma; programlama, düşük seviyeli optimizasyon, grafik işleme, hash algoritmaları ve gömülü sistemler gibi alanlarda temel bir işlemdir. Sola kaydırma (n << k) bitleri en anlamlı uca doğru taşır ve boşalan yerleri sıfırla doldururken, sağa kaydırma (n >> k) bitleri en az anlamlı uca doğru taşır.

8 ikili rakam kutusundan oluşan sıra; oklar bitlerin sola ve sağa kaymasını gösterir
Bit kaydırma her biti sola veya sağa sabit sayıda konum kaydırır.

Bu hesaplama aracı nasıl kullanılır?

n tam sayısını, kaydırma miktarı k değerini (bit cinsinden) girin ve yönü seçin. Araç, ortaya çıkan ondalık değeri size sunar. Bu hesaplayıcı, çoğu programlama dilinin davranışıyla uyumlu olacak şekilde 64 bit işaretli (signed) tam sayı aritmetiği kullanır.

Formülün açıklaması

Tek pozisyonluk her sola kaydırma sayıyı iki katına çıkarır; dolayısıyla k pozisyon sola kaydırmak sayıyı 2k ile çarpar:

$$\text{Result} = \text{Number (n)} \ll \text{Shift (k)} = n \times 2^{k}$$

Tek pozisyonluk her sağa kaydırma ise sayıyı yarıya indirir (kesirli kısmı atarak); bu nedenle k pozisyon sağa kaydırma, 2k ile tam sayı bölmesi yapar:

$$\text{Result} = \text{Number (n)} \gg \text{Shift (k)} = \left\lfloor \frac{n}{2^{k}} \right\rfloor$$

İşte bu yüzden kaydırma işlemleri donanım üzerinde çarpma veya bölmeye kıyasla çok daha ucuzdur.

Bir konum sola kaydırma bitlerin sola gittiğini ve sağa sıfır eklendiğini gösterir; değer ikiye katlanır
Bir konum sola kaydırma değeri ikiye katlar; sağa kaydırma ise yarıya indirir.

Çözümlü örnek

n = 16 alalım ve k = 2 kadar sola kaydıralım. İkili düzende 16 sayısı 10000'dır. İki kez sola kaydırınca sona iki sıfır eklenir: 1000000, yani 64. Matematiksel olarak

$$16 \times 2^{2} = 16 \times 4 = 64$$

Ters yönde işlem yaparsak, \(64 \gg 2 = \left\lfloor 64 / 4 \right\rfloor = 16\) sonucu bizi başlangıçtaki değere geri getirir.

İkinin Kuvvetleri Referans Tablosu

Sola kaydırma \(k\) bir sayıyı \(2^k\) ile çarpar; sağa kaydırma \(k\) \(2^k\) ile böler (tam sayılar için kalanı atılır). Bu tabloyu kullanarak verilen kaydırma miktarı için çarpan veya böleni anında okuyabilirsiniz.

Kaydırma \(k\) \(2^k\) (ondalık) \(\ll k\) / \(\gg k\) Anlamı
0 1 değişiklik yok
1 2 \(\times 2\) / \(\div 2\)
2 4 \(\times 4\) / \(\div 4\)
3 8 \(\times 8\) / \(\div 8\)
4 16 \(\times 16\)
5 32 \(\times 32\)
6 64 \(\times 64\)
7 128 \(\times 128\)
8 256 \(\times 256\) (1 bayt)
9 512 \(\times 512\)
10 1,024 \(\times 1024\) (1 KiB)
11 2,048 \(\times 2048\)
12 4,096 \(\times 4096\)
13 8,192 \(\times 8192\)
14 16,384 \(\times 16384\)
15 32,768 \(\times 32768\)
16 65,536 \(\times 65536\) (2 bayt)
17 131,072
18 262,144
19 524,288
20 1,048,576 \(\times\) 1 MiB
32 4,294,967,296 32-bit sınırı
63 9,223,372,036,854,775,808 64-bit işaretli tam sayının en yüksek biti

Sıkça Sorulan Sorular

Sola kaydırmada veri kaybı olur mu? Evet — tam sayının bit genişliğinin ötesine taşan bitler atılır (taşma / overflow). 64 bit sınırı içinde bu hesaplayıcı değeri korur.

Negatif sayılarda sağa kaydırma nasıl davranır? Bu hesaplayıcı aritmetik (işaretli) sağa kaydırma kullanır; yani işaret biti korunur ve negatif sayılar negatif kalır.

Neden çarpma veya bölme yerine kaydırma kullanılır? Bit kaydırma işlemleri çoğu CPU'da tek çevrimde tamamlanır; bu da onları 2'nin kuvvetleriyle çarpma veya bölme için hızlı bir yöntem hâline getirir.

Son güncelleme: