javascript 中的位运算符
时间:2022-07-25
本文章向大家介绍javascript 中的位运算符,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
位与(&)、位或(|)、位异或(^)、非位(~)
- 左移(<<)、右移(>>)、无符号右移(>>>)
&(位与)
- “&”运算符(位与)用于对两个二进制操作数,逐位取与
第一个数的位值 |
第二个数的位值 |
运算结果 |
---|---|---|
1 |
1 |
1 |
1 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
|(位或)
- “|”运算符(位或)用于对两个二进制操作数,逐位取或
第一个数的位值 |
第二个数的位值 |
运算结果 |
---|---|---|
1 |
1 |
1 |
1 |
0 |
1 |
0 |
1 |
1 |
0 |
0 |
0 |
^(位异或)
- “^”运算符(位异或)用于对两个二进制操作数,逐位取异或
- 位数据相同得 0,不同得 false
- 两个相同的数取异或的 0
第一个数的位值 |
第二个数的位值 |
运算结果 |
---|---|---|
1 |
1 |
0 |
1 |
0 |
1 |
0 |
1 |
1 |
0 |
0 |
0 |
~(位非)
- “~”运算符(位非)用于对一个二进制操作数,逐位取非 第 1 步:把运算数转换为 32 位的二进制整数。第 2 步:逐位进行取反操作。第 3 步:把二进制反码转换为十进制浮点数
- 位非运算实际上就是对数字进行取负运算,再减 1 例如 ~5 等价于 -5-1 结果都是-6
<<(左移位)
“<<”运算符执行左移位运算
- 在移位运算过程中,符号位始终保持不变
- 如果右侧空出位置,则自动填充为 0;超出 32 位的值,则自动丢弃
console.log(5 << 1) // 10
// .... 00 0101 -> 5
// 向右移动1位
// .... 00 1010 -> 10
>>(右移位)
“>>”运算符执行有符号右移位运算
- 把数字中的所有有效位整体右移,再使用符号位的值填充空位
- 移动过程中超出的值将被丢弃
console.log(10 >> 1) // 5
// .... 00 1010 -> 10
// 向左移动1位
// .... 00 0101 -> 5
>>>(无符号右移位)
“>>>”运算符执行五符号右移位运算
- 它把无符号的 32 位整数所有数位整体右移
- 对于无符号数或正数右移运算,无符号右移与有符号右移运算的结果是相同的
- 对于负数来说,无符号右移将使用 0 来填充所有的空位,同时会把负数作为正数来处理
console.log(5 >>> 1) // 2
// .... 00 0101 -> 5
// 向左移动1位
// .... 00 0010 -> 2
console.log(-5 >>> 1) // 2147483645
// 100... 00 0101 -> 5
// 向左移动1位
// 010... 00 0010 -> 2147483645
组合位运算
- ^= a^=b 等价 a = a^b
- ~~ ~~a 等价 ~(~a) 等价 a
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法