Bit Shifting (Bit Kaydırma) nedir? – [Go]

Bit shifting temel tanımıyla, numerik değerlerin bitlerini sağa veya sola kaydırma işlemidir. Genellikle optimizasyon amaçlı olarak uyguladığımız bu işlem, veri şifreleme gibi süreçlerde de sıklıkla karşımıza çıkmaktadır.

Bit kaydırma işlemine, küçük hacimli projelerde -genellikle- ihtiyaç duyulmuyor olsa da performansın ön planda tutulduğu projelerde hayati öneme sahiptir.

Bit shifting işlemi niçin daha verimlidir?

Makalenin girişinde ifade ettiğim üzere bu yöntemin tercih ediliyor olmasının asıl sebebi “performans noktasında bizlere sağladığı avantajlar” olarak karşımıza çıkmaktadır. Bu durumun arkasında yatan birkaç temel nedeni, şu şekilde sıralayabiliriz.

  1. İşlemci verimliliği: Bit shifting operasyonları, işlemci mimarilerin birçoğu tarafından doğrudan desteklenir ve ziyadesiyle basit işlemci komutları kullanılarak kısa sürede gerçekleştirilir.
  2. Bellek (RAM) verimliliği: Bit kaydırma, genellikle bellek kullanımına gerek kalmaksızın doğrudan işlemci üzerinden gerçekleştirilir. Bu husus, bellek kullanımlarını azaltarak işlemlerin daha hızlı yapılabilmesini sağlar.
  3. İşlem adımlarının azaltılması: Bit kaydırma işlemleri, bazı matematiksel fonksiyonların kullanımına duyulan ihtiyacı ortadan kaldırarak genel performansı arttırır. Örneğin, bir sayının 2 ‘nin katları ile çarpılması veya bölünmesi, bit shifting ile çok daha hızlı gerçekleştirilebilir.

Bit shifting işlemi nasıl yapılır?

Go dilinde çalışırken, iki farklı temel operatör kullanırız. Bu operatörler;

  • << (sol bit kaydırma): Bitleri, belirtilen sayıda sola doğru kaydırır.
  • >> (sağ bit kaydırma): Bitleri belirtilen sayıda sağa doğru kaydırır.

Bu operatörlerin kullanımını, kısaca ele alacağım.

1) Sola doğru bit kaydırma (<<)

Sola doğru bit kaydırma işlemi için, şu şekilde bir yöntem izleriz:

var a int = 1     // 1'in ikili sistemdeki gösterimi: 0001
var b int = a << 2 // 2 bit sola kaydır: 0100

Bu örnekte, 1 sayısının bitleri 2 kez sola kaydırılır ve sonuç 4 olur.

2) Sağa doğru bit kaydırma (>>)

Sağa doğru bit kaydırma işlemi için ise şu şekilde bir yöntem izleriz:

var a int = 4     // 4'ün ikili gösterimi: 0100
var b int = a >> 1 // 1 bit sağa kaydır: 0010

Bu örnekte ise 4 sayısının bitleri 1 kez sağa kaydırılır ve sonuç 2 olur.

Açıkça görebildiğiniz üzere Bit Shifting işlemleri, son derece kolay ve pratiktir. Birçok farklı kullanım alanı olduğundan daha komplike örnekleri, farklı makalelere saklıyorum. Diğer makaleleri yayımladıkça burada da linkleyeceğim.

Son olarak, bu işlemlerin stabil bir şekilde çalışabilmesi için sürece yalnızca pozitif sayıları dahil etmeniz gerekmektedir. Negatif sayılar kullandığınızda, bazı durumlarda, beklenmedik sonuçlarla karşı karşıya kalabilirsiniz.

Soru(n)larınızı yorumlar kısmı üzerinden benimle paylaşabilirsiniz. ‘Kodluyorum‘ kategorisindeki yazılarımı takip etmenizi tavsiye ediyorum.

Yorum yapın