в console получается 16,8,4,0,1 как получить сложение этих цифр //29
<!DOCTYPE html>
<html>
<head>
<title>kotorak func</title>
</head>
<body>
<form>
<input type="text" id="bin" name="">
<button type="button" id="sumBin">SUM</button>
</form>
<div id="resultBinar"></div>
<script>
let num = document.getElementById('bin').value;
let numStr = num.toString().split('');
let valueArr = numStr.map(Number);
let resultBin = document.getElementById('resultBinar');
let bttBin = document.getElementById('sumBin');
function binar(a,n) {
let sums = 0;
for (let i = 0; i < valueArr.length; i++) {
a++;
n--;
sums += valueArr[a] * Math.pow(2,n);
}
return sums;
}
bttBin.addEventListener('click',setBin);
function setBin() {
console.log(num)
resultBin.innerText = binar(-1,valueArr.length);
}
</script>
</body>
</html>
Ответы (1 шт):
Автор решения: entithat
→ Ссылка
Ваш код:
let num = 11101;
let numStr = num.toString().split('');
let valueArr = numStr.map(Number);
console.log(valueArr);
let arr2 = [];
function binar(a, n) {
let sum = 0;
for (let i = 0; i < valueArr.length; i++) {
a++;
n--;
sum += valueArr[a] * Math.pow(2, n);
}
console.log(sum);
}
binar(-1, valueArr.length)
Если сделать по красоте:
const binar=(n)=>[...''+n].reduce((ac,cu,i)=>+cu+ac*2,0);
console.log(binar(11101));
А вообще:
console.log(parseInt(11101, 2));
Ваш обновленный код:
document.getElementById('sumBin').addEventListener('click', () => {
document.getElementById('resultBinar').innerHTML = parseInt(document.getElementById('bin').value, 2)
});
<form>
<input type="text" id="bin">
<button type="button" id="sumBin">SUM</button>
</form>
<div id="resultBinar"></div>