如何从二进制int中获取百分比,每个位表示x%
How to get percent from an binary int, with every bit representing x percent?
我有一个10位的二进制位图。每一位代表10%。有没有简单的数学函数可以从位图中得到百分比的总和?
样品
0000000000 = 0%
0000000001 = 10%
1000000000 = 10%
0000100000 = 10%
1000000001 = 20%
0000000011 = 20%
0000110000 = 20%
0010000010 = 20%
1010000010 = 30%
请注意,这只是如何激活位的一个示例。我的数字实际上是一个整数,比如0,1到1023。
您不必使用循环。你不必做数学。就这样做吧:
var number = 1000100010;
alert(number.toString().split("1").length - 1);
//A little more deep:
var number2 = 1100100000;
alert((number2.toString().split("1").length - 1) * 10 + "%");
使用循环:
function count_1bits(n, bitsize) {
var count = 0;
for (var i = 0; i < bitsize; i++) {
count += (n & 1); // test low-order bit
n >>= 1; // shift number down 1 bit
}
return count;
}
var pct = count_1bits(bitmap, 10)*100;
你可以用这样的函数计算比特,然后乘以10,得到百分比:
function countBits(n, cnt) {
if (cnt == 1) return n & 1;
var half = Math.floor(cnt / 2);
return countBits(n >> half, cnt - half) + countBits(n, half);
}
n = 1023;
document.write(countBits(n, 10) * 10 + '%');
尝试做一些类似的事情
x = '0000100011';
function binTopre(x) {
c = (x.match(/1/g)||[]).length;
return (c*10) + '%';
}
console.log(binTopre(x));//30%
相关文章:
- React中的数据集表示
- 如果宽度是百分比,如何设置以px为单位的图像高度
- 使用javascript可以设置css动画的当前百分比
- 任何将(SSH)终端嵌入到一些HTML5表示系统中的想法(例如,show.js)
- 文本表示法VS.构造函数,用于在JavaScript中创建对象
- 如何将Date字段设置为等于另一个Date+Int值,该值表示月份值
- regex表示逗号,后跟空格或仅逗号
- 我将如何将其更改为循环和数组表示法
- 当我使用高度百分比时,谷歌地图javascript api不会显示
- Javascript差异百分比数学
- 如何使用Undercore和Backbone在HTML中表示模型属性
- 如何从二进制int中获取百分比,每个位表示x%
- extJs(设置高度和宽度)(以百分比表示)
- JQuery更改以百分比问题表示的宽度
- 如何使用jquery获取以百分比表示的行高
- 将圆内的点位置表示为任意线段的百分比
- 把数字表示成百分比
- 用D3将数字快速表示为百分比
- 调整高度&宽度以百分比而非像素表示
- 获取光标位置(以百分比表示)