JavaScript 按位与运算符
JavaScript Bitwise And operator
这是一个 JavaScript 程序,假设 return (a & b) 的最大值也小于 k(即 a & b < k 的最大值).. . 但它 return 是一个比最大值小 1 的值...
注意:a必须小于b;
function data(n, k) {
var res = [];
for (var i = 1; i <= n; i++) {
for (var j = 2; j <= n; j++) {
if (i >= j) continue;
let a = i.toString(2);
let b = j.toString(2);
var c = a & b;
c = parseInt(c, 2);
res.push(c)
}
}
var res = res.filter(function(e) {
return e < k;
});
return Math.max(...res);
}
console.log( data(955, 236) );
它return是234,而不是235...
我尝试过其他方法,如 Reduce 和所有...但我认为我的问题源于我比较 a 和 b 的按位和...
老实说,我不知道这段代码应该做什么......但我可以告诉你,这段代码并不像你想象的那样。
let a = i.toString(2);
let b = j.toString(2);
var c = a & b;
toString
把它变成一个字符串。 toString(2)
变成一个字符串, 表示 二进制值。这与实际值不同。
按位运算符,如 &
处理整数。编译器将尝试将字符串转换为数字...但此时它将以 10 为基数工作,因此,您将获得与预期完全不同的数字。
最像你的意思是c = i & j
您不必将数字转换为二进制。在计算机内部,它们 已经 二进制。当您要求计算机将它们显示给您时,计算机只会将它们转换为基数 10。
函数数据(n,k){
var res = 0;
for (var a = 1; a <= n; a++) {
for (var b = 2; b <= n; b++) {
if (i >= j) continue;
if ((a & b) < k && (a & b ) > res ) {
res = ( a & b) ;
}
}
}
return res;
}
console.log ( data ( 955, 236) ) ;
这是一个 JavaScript 程序,假设 return (a & b) 的最大值也小于 k(即 a & b < k 的最大值).. . 但它 return 是一个比最大值小 1 的值... 注意:a必须小于b;
function data(n, k) {
var res = [];
for (var i = 1; i <= n; i++) {
for (var j = 2; j <= n; j++) {
if (i >= j) continue;
let a = i.toString(2);
let b = j.toString(2);
var c = a & b;
c = parseInt(c, 2);
res.push(c)
}
}
var res = res.filter(function(e) {
return e < k;
});
return Math.max(...res);
}
console.log( data(955, 236) );
它return是234,而不是235... 我尝试过其他方法,如 Reduce 和所有...但我认为我的问题源于我比较 a 和 b 的按位和...
老实说,我不知道这段代码应该做什么......但我可以告诉你,这段代码并不像你想象的那样。
let a = i.toString(2);
let b = j.toString(2);
var c = a & b;
toString
把它变成一个字符串。 toString(2)
变成一个字符串, 表示 二进制值。这与实际值不同。
按位运算符,如 &
处理整数。编译器将尝试将字符串转换为数字...但此时它将以 10 为基数工作,因此,您将获得与预期完全不同的数字。
最像你的意思是c = i & j
您不必将数字转换为二进制。在计算机内部,它们 已经 二进制。当您要求计算机将它们显示给您时,计算机只会将它们转换为基数 10。
函数数据(n,k){ var res = 0;
for (var a = 1; a <= n; a++) {
for (var b = 2; b <= n; b++) {
if (i >= j) continue;
if ((a & b) < k && (a & b ) > res ) {
res = ( a & b) ;
}
}
}
return res;
}
console.log ( data ( 955, 236) ) ;