【发布时间】:2020-04-05 03:10:41
【问题描述】:
我在 JavaScript 中有以下字符串:
"1011100111100110101110110".
我想对它执行一个操作,这将返回它的补码(也就是所有的都被零替换,所有的零都被替换为一)。
javascript 文档说 NOT 运算符会做到这一点,但在我的测试中,它并没有给我预期的结果。
我想我的类型一开始就错了。
这是我的测试代码:
var nMyNumber = "1011100111100110101110110";
var sBinString = nMyNumber.toString(2);
console.log("Number: " + sBinString);
var reverse = ~sBinString;
console.log("Complement: " + reverse);
【问题讨论】:
-
你所拥有的不是“二进制”;它只是一串 1 和 0。所以二进制运算符不会像您认为的那样对实际二进制值起作用。你永远无法直接“看到”
~处理的二进制类型,只能是它的一些抽象表示(例如整数)。 -
OK - 我知道类型不正确;我需要得到 nMyNumber 字符串的补码,然后将该结果转换为十进制...
标签: javascript