在javascript中获取字节大小的值

时间:2016-10-09 08:32:16

标签: javascript

我有一个整数形式的值,但我不知道它是Uint8还是Uint16或Uint32。现在我想得到它的字节大小,例如我想要这样的东西:

var a = 100;     // 1100100
var b = 1000;    // 1111101000
console.log (byteSizeOf(a)); // --> 2
console.log (byteSizeOf(b)); // --> 3

任何人都可以帮助我?

1 个答案:

答案 0 :(得分:0)

您可以使用基本数学,如果那只是您需要调整的十进制数字:

Math.ceil(Math.log2(100)/4) 

- > 2

Math.ceil(Math.log2(1000)/4) 

- > 3

但你还必须处理0和1的空间情况:

function byteSizeOf( x ) {
    return ( x < 2 )?1:Math.ceil(Math.log2(x)/4);
}

您可以将数字转换为二进制字符串,如下所示: how do I convert an integer to binary in javascript?

function dec2bin(dec){
    return (dec >>> 0).toString(2);
}

然后你可以将结果转换为二进制数组:

"110011".split().map(function(x){return parseInt(x);})