这个模块的功能: 解决 Node.js GBK 乱码问题, 纯 JS 实现。
原码:
例如, 32位原码 a
: 00000000 00000000 00000000 00000001
32 位原码 b
: 10000000 00000000 00000000 00000001
真值:
以上两个 32 位原码真值分别为: +1
, -1
a
的反码: a
为正数,补码跟原码相同
b
的反码: 11111111 11111111 11111111 11111110
a
的补码: a
为正数补码与原码相同
b
的补码: 11111111 11111111 11111111 11111111
JavaScript 中的数字都是以 32 位长度存在计算机中的,存储的是数值所对应的补码。 JavaScript 的位运算都是基于数字的补码的。
数字之间,按位与,按位或,按位非,按位异或,都是 32 位补码之间的运算。
liveinjs-gbk
模块 中 编码的转换都是基于位运算的。
liveinjs-gbk
模块地址,有注释: https://www.npmjs.org/package/liveinjs-gbk