JavaScript Tutorials

JavaScript’te Verimli Ondalık-İkili Dönüşüm

Spread the love

Ondalık sayıları ikili karşılıklarına dönüştürmek, programlamada yaygın bir işlemdir. JavaScript, bu dönüşümü gerçekleştirmek için verimli yollar sunar ve bu makale iki temel yöntemi ele almaktadır.

İçindekiler Tablosu

JavaScript’te Manuel İkili Dönüşüm

Altta yatan algoritmayı anlamak, programlama becerilerinizi geliştirir. Bu bölüm, ondalık bir sayıyı ikili gösterimine dönüştürmek için özel bir fonksiyonu göstermektedir. Algoritma, sayıyı tekrar tekrar 2’ye bölerek, ikili dizisini oluşturmak için kalanları kaydeder.


function decimalToBinary(decimal) {
  if (decimal === 0) return "0"; 
  let binary = "";
  let temp = decimal;
  while (temp > 0) {
    binary = (temp % 2) + binary;
    temp = Math.floor(temp / 2);
  }
  return binary;
}

// Örnekler
console.log(decimalToBinary(10));   // Çıktı: 1010
console.log(decimalToBinary(255));  // Çıktı: 11111111
console.log(decimalToBinary(0));    // Çıktı: 0

Fonksiyon, 0 durumunu ele alır ve bölüm 0 olana kadar girişi yinelemeli olarak böler. Her kalan (0 veya 1), binary dizisinin başına eklenir ve ikili gösterim oluşturulur.

toString(2) ile Verimli İkili Dönüşüm

JavaScript’in yerleşik toString(2) yöntemi özlü ve verimli bir çözüm sunar. Bu yöntem, bir sayıyı doğrudan ikili dize gösterimine dönüştürür.


function decimalToBinaryFast(decimal) {
  return decimal.toString(2);
}

// Örnekler
console.log(decimalToBinaryFast(10));   // Çıktı: 1010
console.log(decimalToBinaryFast(255));  // Çıktı: 11111111
console.log(decimalToBinaryFast(0));    // Çıktı: 0

toString(2) yöntemi, taban (radix)ı bir bağımsız değişken olarak alır. 2 olarak ayarlanması ikili dönüşümü belirtir. Bu yaklaşım, manuel yönteme göre önemli ölçüde daha hızlı ve daha okunabilirdir.

Sonuç olarak, manuel dönüşüm sürecini anlamak öğrenme açısından değerli olsa da, yerleşik toString(2) yöntemi, çoğu pratik senaryoda verimliliği ve okunabilirliği nedeniyle tercih edilen yaklaşımdır.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir