JavaScript中二進位制字串的加法


問題要求我們對兩個二進位制字串進行加法運算。二進位制字串是位元組序列。要在 JavaScript 中對它們進行加法運算,我們首先需要將它們轉換為十進位制數,然後計算它們的和。將這些十進位制數相加後,我們再將結果轉換回二進位制字串並列印輸出。

什麼是二進位制字串?

二進位制數或二進位制字串是基數為 2 的位元組序列。它基本上是 0 和 1 的組合,用於表示任何數字。二進位制加法是數學中對二進位制字串執行的一種運算。二進位制加法與十進位制加法類似,但基數為 2。

二進位制數加法的規則:

二進位制數加法有一些規則。如果我們遵循這些規則,那麼加法運算將比十進位制加法更容易。二進位制數加法的規則如下:

理解問題

問題要求我們在 JavaScript 中計算給定二進位制字串的和。為了解決這個問題,我們將建立變數來儲存這些二進位制字串。建立變數後,使用 JavaScript 中提供的 parseInt() 函式將其轉換為十進位制形式。然後計算這些轉換後的數字的和。並再次將其轉換為字串格式。

演算法

步驟 1:第一步定義一個名為 sumOfStrings() 的函式,並向其中傳遞兩個引數。

步驟 2:宣告函式後,定義兩個變數 num1 和 num2。這些變數使用 parseInt() 函式將它們解析為基數為 2 的整數。

步驟 3:將十進位制數 num1 和 num2 相加。並將它們的值賦給 sum 變數。

步驟 4:使用 toString 方法轉換回二進位制字串,並將它的值賦給 binarySum。

步驟 5:最後,在所有流程結束後返回加法結果。

以下是該演算法的虛擬碼

function sumOfStrings(s1, s2):
   num1 = parseInt(s1, 2)
   num2 = parseInt(s2, 2)
   addition = num1 + num2
   binarySum = addition.toString(2)
   return binarySum

示例

// Define a function to calculate sum of strings
function sumOfStrings(s1, s2) {

  // Converting binary strings to decimal numbers with parseInt
  var num1 = parseInt(s1, 2);
  var num2 = parseInt(s2, 2);

  // Add decimal numbers num1 and num2 together
  var sum = num1 + num2;

  // Converting back to binary string with toString method
  var binarySum = sum.toString(2);

  // Return string
  return binarySum;
}


//calling sumBinaryStrings function
var afterSum = sumOfStrings('0111', '1001');

//print on console
console.log("After adding two binary strings together")
console.log(afterSum); 

輸出

After adding two binary strings together
10000

在上面的程式碼中,我們使用了兩個預定義的方法,即 parseInt() 和 toString()。讓我們詳細瞭解一下這些方法。

parseInt() 方法是 JavaScript 的預定義方法。此方法用於將二進位制字串轉換為十進位制數。為了進行轉換,我們將必須傳遞一個基數(數學系統中的基數)引數。基數指定要使用的數字系統,例如二進位制為 2,八進位制為 8,十進位制為 10,十六進位制為 16。

當我們想要以字串形式列印值時,使用 JavaScript 的 toString() 方法。在我們的程式碼中,sum.toString(2) 將計算出的 sum 轉換為字串格式。

複雜度

如果我們討論這個程式的時間複雜度,它將花費 O(n) 時間來完成執行。在這種情況下,n 是兩個二進位制字串的長度。因為這兩個函式 (parseInt() 和 toString()) 都在給定字串的長度上執行。而加法運算本身是一個簡單的運算,計算和只需要常數時間。因此,該程式的整體複雜度可以透過將字串的長度相加來計算。

結論

在這個問題中,我們學習瞭如何使用 JavaScript 方法 parseInt 和 toString。使用這兩個方法,我們根據問題說明計算了兩個二進位制字串的和。最後,該演算法的時間複雜度為 O(n),因為這些方法需要字串的長度來計算和。

更新於:2023年8月18日

2K+ 次瀏覽

開啟您的職業生涯

透過完成課程獲得認證

開始學習
廣告
© . All rights reserved.