我是 javascript 和编码的新手。我不能取来自函数的数字的平方。我在下面写了我想要做的事情。谢谢大家。
// BİNARY to DECİMAL
// (100110)2 > (1 × 2⁵) + (0 × 2⁴) + (0 × 2³) + (1 × 2²) + (1 × 2¹) + (0 × 2⁰) = 38
let binary= prompt("Write a Binary Number");
function binaryToDecimalConverter(binary){
let decimal=0;
let power=0;
for(let i=binary.length-1; i>=0; i--){
decimal+=Number(binary.charAt(i)) * Math.pow(2,power);
power++;
}
console.log("Decimal : " + decimal);
console.log(squareIt(decimal));
}
binaryToDecimalConverter(binary);
function squareIt(decimal){ //38 is here and I want to get it like: (3^2 + 8^2)=73 as result ??
let sNumber=decimal.toString();
let total=0;
for(let i=sNumber.length-1; i>=0; i--){
total+=Number(sNumber.charAt(i))*Math.pow(sNumber,2);
}
return total;
}
我想将用户输入的二进制数转换为十进制数,我还想对该数字的每个字符求平方并对它们求和。
您可以将数字拆分为字符并使用
Array::reduce()
:
let binary= prompt("Write a Binary Number");
function binaryToDecimalConverter(binary){
let decimal=0;
let power=0;
for(let i=binary.length-1; i>=0; i--){
decimal+=Number(binary.charAt(i)) * Math.pow(2,power);
power++;
}
console.log("Decimal : " + decimal);
console.log(squareIt(decimal));
}
binaryToDecimalConverter(binary);
function squareIt(decimal){ //38 is here and I want to get it like: (3^2 + 8^2)=73 as result ??
return decimal.toString().split('').reduce((sum, c) => sum + c * c, 0);
}