Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vue.js/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将两个整数转换为二进制数组?_Javascript - Fatal编程技术网

Javascript 将两个整数转换为二进制数组?

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!

我正在做一个机器学习实验,我试图找出一个快速函数来实现这一点:

它接受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!

第一个值将以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]=
将其分配给数组。