获取javascript中值的字节大小

get byte size of value in javascript

本文关键字:字节 javascript 获取      更新时间:2023-09-26

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

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

有人能帮我吗?

你可以使用基本的数学,如果只有十进制数字你需要大小:

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);
}

你可以像这样把数字转换成二进制字符串:我如何将一个整数转换为二进制在javascript?

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

然后你可以把结果转换成二进制数组:

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