将二进制字符串相加 JavaScript

javascriptweb developmentfront end technologyobject oriented programming

问题是我们必须将两个二进制字符串相加。二进制字符串是字节序列。要在 javascript 中添加它们,我们首先将它们转换为十进制并计算总和。添加这些十进制数后,我们将再次将其转换为二进制字符串并打印输出。

什么是二进制字符串?

二进制数或二进制字符串是以 2 为基数的字节序列。它基本上是 0 和 1 的组合,用于表示任何数字。而二进制加法是针对二进制字符串执行的数学运算之一。二进制加法与十进制加法类似,但基数为 2。

二进制数加法规则-

二进制数加法有一些规则。如果我们遵循这些规则,那么加法将比十进制加法容易得多。二进制数加法规则如下:

理解问题

问题指出我们必须在 Javascript 中计算给定二进制字符串的总和。为了解决这个问题,我们将创建变量来存储这些二进制字符串。创建变量后,使用 javascript 中提供的 parseInt() 函数将它们转换为十进制形式。然后计算这些转换后的数字的总和。并再次将其转换为字符串格式。

算法

步骤 1:在第一步中,定义一个名为 sumOfStrings() 的函数,并在其中传递两个参数。

步骤 2:声明函数后,定义两个变量 num 1 和 num2。这些变量使用 parseInt() 函数通过 redix 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

示例

// 定义一个函数来计算字符串的总和
function sumOfStrings(s1, s2) {

    // 使用 parseInt 将二进制字符串转换为十进制数
    var num1 = parseInt(s1, 2);
    var num2 = parseInt(s2, 2);
    
    // 将十进制数 num1 和 num2 相加
    var sum = num1 + num2;
    
    // 使用 toString 方法转换回二进制字符串
    var binarySum = sum.toString(2);
    
    // 返回字符串
    return binarySum;
}


//调用 sumBinaryStrings 函数
var afterSum = sumOfStrings('0111', '1001');

//在控制台上打印
console.log("将两个二进制字符串相加后")
console.log(afterSum);

输出

将两个二进制字符串相加后
10000

在上面的代码中,我们使用了两个预定义方法,分别称为 parseInt() 和 toStrings()。让我们详细了解这些方法。

parseInt() 方法是 javascript 的预定义方法。此方法用于将二进制字符串转换为十进制数。为了进行转换,我们必须传递一个 redix(数学系统中的基数)参数。 Redix 指定要使用的数字系统,2 表示二进制,8 表示八进制,10 表示十进制,16 表示十六进制。

当我们想要以字符串形式打印值时,会使用 javascript 的 toString() 方法。在我们的代码中,sum.toString(2) 将计算出的总和转换为字符串格式。

复杂性

如果我们谈论这个程序的时间复杂度,它将需要 O(n) 次才能完成执行。在这种情况下,n 是两个二进制字符串的长度。因为两个函数(parseInt() 和 toString())都在处理给定字符串的长度。而加法运算本身是一个简单的操作,需要一段恒定的时间来计算总和。因此,可以通过添加字符串的长度来计算该程序的整体复杂度

结论

在这个问题中,我们使用并学习了如何使用 javascript 方法 parseInt 和 toString。使用这两个方法,我们计算了问题所述的两个二元弹簧的总和。​​最后,该算法的时间复杂度为 O(n),因为这些方法采用字符串的长度来计算总和。


相关文章