在 JavaScript 中将二进制数组转换为对应的整数
假设我们有一个包含 0 和 1 的数字数组:
const arr = [0, 1, 0, 1];
我们需要编写一个数组函数 `toBinary()`,它返回与其一起使用的数组对应的二进制数。
例如:
const arr = [1, 0, 1, 1];
则输出应为 11,因为二进制 1011 的十进制表示为 11。
因此,让我们编写此函数的代码。
方法一:使用库方法
在 JavaScript 中,存在一个 `parseInt()` 方法,它接受两个参数,第一个是字符串,第二个是表示特定基数的数字,例如 10 表示十进制基数,2 表示二进制基数。此函数解析字符串参数并返回指定基数 (基数) 的整数。
在我们的例子中,要将二进制数组转换为十进制,我们可以像这样使用 `parseInt()` 函数:
const arr = [1, 0, 1, 1]; const parseArray = arr => { const binaryString = arr.join(""); return parseInt(binaryString, 2); }; console.log(parseArray(arr));
方法二:数组化简
在这种方法中,我们迭代二进制数组并根据相应的二进制数构造十进制数。我们将使用左移运算符 (<<) 将累积值每次左移一位,并返回移位的累积值和当前值的按位或 (|)。
使用位运算符的代码:
示例
const arr = [1, 0, 1, 1]; const parseArray = arr => { return arr.reduce((acc, val) => { return (acc << 1) | val; }); }; console.log(parseArray(arr));
输出
控制台中的输出将是:
11
广告