作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我决定编写程序,用户输入一个二进制数字,如11000000.10101000
,然后将其转换为数字。但我不知道为什么输出只是最后一个数字。这是我的代码:
function ConvertToDec()
{
var binaryNumber = document.getElementById('NumberInput').value;
var decNumber;
var split = binaryNumber.split("\.");
for(i=0; i<split.length; i++) {
decNumber = parseInt(split[i], 2);
//console.log(split[i]);
//console.log(decNumber);
document.getElementById('Result').value = decNumber;
}
}
最佳答案
假设点是小数分隔符,那么您可以使用 parseInt
和 radix
of 2
将整数部分转换为十进制值并通过取以 2 为底的分数将小数部分转换为数字。
binary decimal (2^n) n
----------------- ------------- ----
11000000.10101000
10000000 128 7
1000000 64 5
.1 .5 -1
.001 .125 -3
.00001 .03125 -5
----------------- -------------
11000000.10101000 192.65625
function bin2dec(bin) {
var [int, frac] = bin.split("\.");
return [...frac].reduce((d, b, i) => d + b / (2 << i), parseInt(int, 2));
}
console.log(bin2dec('11000000.10101000'));
关于javascript - 如何在 JavaScript 中分割二进制数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48731296/
我是一名优秀的程序员,十分优秀!