JavaScript位运算 JavaScript类型转换 JavaScript正则表达式 JavaScript 位运算符 运算符 描述 实例 等同于 结果 等同于 & 与 5 & 1 0101 & 0001 1 0001 | 或 5 | 1 0101 | 0001 5 0101 ~ 非 ~ 5 ~0101 10 1010 ^ 亦或 5 ^ 1 0101 ^ 0001 4 0100 << 0填充左移位 5 << 1 0101 << 1 10 1010 >> 有符号右移位 5 >> 1 0101 >> 1 2 0010 >>> 0填充右移位 5 >>> 1 0101 >>> 1 2 0010 上面的例子使用4位无符号的例子。但JavaScript使用32位的有符号数. 因为这个, 在JavaScript里面, ~ 5 将不返回 10. 它将返回 -6. ~00000000000000000000000000000101 将返回 11111111111111111111111111111010 按位与 按位与, 两个位都为1,则返回1. 一位实例: 操作结果 0 & 00 0 & 10 1 & 00 1 & 11 4 位实例: 操作结果 1111 & 00000000 1111 & 00010001 1111 & 00100010 1111 & 01000100 按位或 按位或, 有一个为1,就返回1: 1位实例: 操作结果 0 | 00 0 | 11 1 | 01 1 | 11 4 位结果: 操作结果 1111 | 00001111 1111 | 00011111 1111 | 00101111 1111 | 01001111 按位亦或 按位亦或, 如果两个不相同则返回1,否则返回0: 1位实例: 操作结果 0 ^ 00 0 ^ 11 1 ^ 01 1 ^ 10 4 为实例: 操作结果 1111 ^ 00001111 1111 ^ 00011110 1111 ^ 00101101 1111 ^ 01001011 JavaScript 位操作 JavaScript 按位运算在32位有符号整数. 运算中的任何数转换成32位有符号整数. 位运算结果转换为JavaScript数字. JavaScript 按位与 (&) 按位与,两个位都为1,返回1: 数字二进制 500000000000000000000000000000101 100000000000000000000000000000001 5 & 100000000000000000000000000000001 (1) var x = 5 & 1; 让我试试 JavaScript 按位或 (|) 按位或,有一个为1,则返回1: 数字二进制 500000000000000000000000000000101 100000000000000000000000000000001 5 | 100000000000000000000000000000101 (5) var x = 5 | 1; 让我试试 JavaScript 按位亦或 (^) 按位亦或,不相同返回1,否则返回0: 数字二进制 500000000000000000000000000000101 100000000000000000000000000000001 5 ^ 100000000000000000000000000000100 (4) var x = 5 ^ 1; 让我试试 JavaScript 按位取反 (~) 数字二进制 500000000000000000000000000000101 ~511111111111111111111111111111010 (-6) var x = 5 ^ 1; 让我试试 JavaScript 左移位 (<<) 这是零填充左移位. 一个或多个零位从右边移到左边,而左边的位删除: 数字二进制 500000000000000000000000000000101 5 << 100000000000000000000000000001010 (10) var x = 5 << 1; 让我试试 JavaScript 右移位 (>>) 这是一个有符号右移位。: 数字二进制 -511111111111111111111111111111011 -5 >> 111111111111111111111111111111101 (-3) var x = -5 >> 1; 让我试试 JavaScript (零填充) 右移位 (>>>) (零填充) 右移位: 数字二进制 500000000000000000000000000000101 5 >>> 100000000000000000000000000000010 (2) var x = 5 >>> 1; 让我试试 32位有符号整数 只有一位集的32位整数易于理解: 二进制描述数字 000000000000000000000000000000011 000000000000000000000000000000102 000000000000000000000000000001004 000000000000000000000000000010008 0000000000000000000000000001000016 0000000000000000000000000010000032 0000000000000000000000000100000064 设置多个位显示二进制模式: 二进制表示数字 000000000000000000000000000001015 (4 + 1) 0000000000000000000000000010100040 (32 + 8) 0000000000000000000000000010110145 (32 + 8 + 4 + 1) 负数存储在两个补码格式中。这意味着,一个负数位数不加1. 二进制表示数值 000000000000000000000000000001015 11111111111111111111111111111011-5 0000000000000000000000000010100040 11111111111111111111111111011000-40 十进制转换为二进制 function dec2bin(dec){ return (dec >>> 0).toString(2); } 让我试试 二进制转换为十进制 function bin2dec(bin){ return parseInt(bin, 2).toString(10); } 让我试试 JavaScript类型转换 JavaScript正则表达式