JavaScript的位运算符
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 重温整数 ECMAScript整数有两种类型,有符号整数(允许用正数和负数)和无符号整数(只允许用正数)。在ECMAScript中,所有整数字面量默认都是有符号整数。 有符号整数,数值范围从-2147483648到2147483647;无符号整数,数值范围从0到4294967295。记住,所有整数字面量都默认存储为有符号整数,只有ECMAScript的位运算符才能创建无符号整数。 把无符号整数转换为字符串,只返回有效位。也就是前面都是0的就不返回了。 var i = 18, j = -18; alert(i.toString(2)); // -> '10010' alert(j.toString(2)); // -> '-10010' 虽然负数的二进制显示是在正数的二进制表示前加负号,但负数存储也是二进制代码,采用的形式是二进制补码。 计算二进制补码步骤有3步: 确定数字的非负版本的二进制表示。如,-18的补码要先确定18的二进制表示 求得二进制反码,即把0替换为1,把1替换为0 在二进制反码上加1 位运算符NOT(~) 位运算符由否定好(~)表示,它是ECMAScript中为数不多的与二进制算术有关的运算符之一。位运算符NOT是三步的处理过程: 把运算数转为32位二进制数字 再转为它的二进制反码