将二进制字符串相加 JavaScript
问题是我们必须将两个二进制字符串相加。二进制字符串是字节序列。要在 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),因为这些方法采用字符串的长度来计算总和。