JavaScript 二进制运算
1.NOT
位运算符NOT由~表示.NOT运算符的实质是对数字求负,然后减1.
位运算符NOT是三步的处理过程.
a.把运算符转换成32位数字
b.把二进制形式转换成它的二进制反码
c.把二进制反码转换成浮点数
例子:
var num=10; console.log(~num);
结果:-11
2.AND
位运算符AND由&表示.直接对数字的二进制形式进行运算.运算规则如下:
第一个数字 第二个数字 结果 0 0 0 0 1 0 1 0 0 1 1 1
例子:
var num1=10;//1010 var num2=11;//1011 console.log(num1 & num2);
结果:
3.OR
位运算符OR由符号|表示.直接对二进制进行运算,规则如下:
第一个数字 第二个数字 结果 0 0 0 0 1 1 1 0 1 1 1 1
例子:
var num1=10;//1010 var num2=11;//1011 console.log(num1 | num2);
结果:
4.XOR
位运算符XOR由符号^表示.直接对二进制进行运算.规则如下:
第一个数字 第二个数字 结果 0 0 0 0 1 1 1 0 1 1 1 0
例子:
var num1=10;//1010 var num2=11;//1011 console.log(num1 ^ num2);
结果:
5.<<
左移运算符由<<表示.它把数字中所有位数向左移动指定的数量.
注意:
a.在左移数位时,数字右边的空位由0来填充,使结果是完整的32位数字
b.左移操作保留数字的符号位.
例子:
console.log(10<<2+"<br/>"); console.log(-10<<2);
效果:
6.>>
有符号右移运算由>>表示.它将32位数字中的所有数字整体右移.同时保留该数的符号.
注意:
a.符号位保持不变
b.在右移数位时,数字左边的空位由0填充
例子:
console.log(10>>1); console.log("<br/>"); console.log(-10>>1);
效果:
7.>>>
无符号右移由>>>表示.它将32位数字中的所有数字整体右移.
注意:
a.无符号右移运算用0填充所有空位.
b.对于整数,无符号右移和有符号右移结果一样.
c.对于负数,由于左侧补0,导致负数经过无符号右移后,变为一个正数
例如:
console.log(-10>>>1);
结果:
运算过程:
-10
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 0 经过无符号右移-10>>>1
0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1
结果:
2147483643
8.字符串表示二进制
前缀增加‘0b’即可
例如: var a = "0101";
a = "0b" + a;
var b = a|0;
console.log(b);
结果:
5
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· 单线程的Redis速度为什么快?
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码