Javascript整数到二进制字符串往返丢失位

时间:2017-01-16 22:11:07

标签: javascript binary

我正在尝试将二进制字符串转换为整数并在javascript中再次返回(大多数情况下,我可以通过网络更有效地移动我的二进制数组)。只有我有问题。看来,在来回转换64位阵列时,我失去了一些位。

我的转化功能如下:

Utils = {
  dec2bin: function(dec, size) {
    return (dec).toString(2);
  },
  bin2dec: function(str) {
    return parseInt(str, 2);
  }
}

这似乎是小规模的......

Utils.bin2dec('101');
// 5
Utils.dec2bin(5);
// '101'

但是,当我开始查看一个更长的整数时,最后几个正位似乎消失了:

var start = '1000000101000010001001000001100000011000001001000100001010000001';
var integer = Utils.bin2dec(start);
var end = Utils.dec2bin(integer);
console.log(start)
console.log(end)

上面的代码导致:

1000000101000010001001000001100000011000001001000100001010000001
1000000101000010001001000001100000011000001001000100000000000000

注意到最后我的所有1都是0。

如果我删除少数几个正位,那么结尾似乎保持其完整性......

0000000000000010001001000001100000011000001001000100001010000001
              10001001000001100000011000001001000100001010000001

(我可以轻松填写​​前几个0)

所以问题是这个。我可以在Javascript中将64位存储在一个整数中吗?怎么样?

或者,如何使用多个整数进行此往返?

0 个答案:

没有答案