Javascript 将两个整数转换为二进制数组?
我正在做一个机器学习实验,我试图找出一个快速函数来实现这一点: 它接受0-99之间的两个整数,并运行二进制文件数组:Javascript 将两个整数转换为二进制数组?,javascript,Javascript,我正在做一个机器学习实验,我试图找出一个快速函数来实现这一点: 它接受0-99之间的两个整数,并运行二进制文件数组: var binaries = convert(12, 33); console.log(binaries) //outputs [0,1,0,1,1,0] 二进制文件将与其他两个二进制文件进行比较,以确定其匹配性最佳: var 1 = [0,1,1,1,1,0] // 5 matches var 2 = [0,0,0,0,0,0] // 3 matches, 1 wins!
var binaries = convert(12, 33);
console.log(binaries) //outputs [0,1,0,1,1,0]
二进制文件
将与其他两个二进制文件进行比较,以确定其匹配性最佳:
var 1 = [0,1,1,1,1,0] // 5 matches
var 2 = [0,0,0,0,0,0] // 3 matches, 1 wins!
第一个值将以fead形式输入,另一个值将随机更改,以便找到一个尽可能理想的值。理想的方法是,基于输入,它将创建一个输出,尽可能多地从1和2中选择正确的一个。生成的数组的长度未知。转换应该如何工作?可能的解决方案如下所示:
var arrToTest = [1,1,1];
function intToBinaryArray(num){
var binary = num.toString(2);
var arr = [];
for (var i=0; i<binary.length; i++){
arr[i] = parseInt(binary.charAt(i));
}
return arr;
}
function binaryComparison(a,b){
var result = 0;
a.forEach(function(r,i){
if(r === b[i]){
result++;
}
})
return result;
}
console.log(
binaryComparison(arrToTest,intToBinaryArray(7)) + ' out of ' +
arrToTest.length + ' matched.'
);
var arrToTest=[1,1,1];
函数intToBinaryArray(num){
var binary=num.toString(2);
var-arr=[];
对于(var i=0;iYou可能想改写这个问题,这有点混乱,您想从convert
方法返回串联的二进制值吗?thx,我最感兴趣的是intToBinaryArray,它应该包含两个值,我不确定arr[i]=parseInt(binary.charAt(i))是什么使用num.toString(2)
后,二进制文件将显示为一个字符串,如“001”,因为需要一个带有整数的数组。我循环遍历每个字符,使用parseInt
将其转换回整数,并使用arr[I]=
将其分配给数组。