js 位运算符 ~, ,| ,^
2024-06-10 08:31:51
1、位运算 NOT 由否定号(~)表示
位运算 NOT 是三步的处理过程:
- 把运算数转换成 32 位数字
- 把二进制数转换成它的二进制反码
- 把二进制数转换成浮点数
例如:
//31位表示整数的数值,用第 32 位表示整数的符号,0 表示正数,1 表示负数
var a1 = 35; //35 0000 0000 0000 0000 0000 0000 0010 0011 //为了看到清楚 4位断一下
var a2 = ~a1; //转换为 1111 1111 1111 1111 1111 1111 1101 1100
console.log(a2) // -26
位运算 NOT 实质上是对数字求负,然后减 1,因此 25 变 -26。例:
var a1 = 35;
var a2 = -a1 - 1
console.log(a2) // -36
2、位运算 AND 由和号(&)表示
位运算 AND 是三步的处理过程:
- 把运算数转换成 二进制数, 位数不够左侧用0补位
- 遵循只有同为1的时候等于1,否则为0的原则求得二进制结果
- 将得到的 二进制数转为十进制。
例:
var a = 33; 0010 0001
var b = 47; 0010 1111=>0010 0001 转换为10进制 等于33
即 console.log( 33 & 47) // 33
3、位运算 OR 由符号(|)表示
位运算 OR 是三步的处理过程:
- 把运算数转换成 二进制数, 位数不够左侧用0补位
- 遵循只有同为0的时候等于0,否则为1的原则求得二进制结果
- 将得到的 二进制数转为十进制。
例:
var a = 27; 0001 1011
var b = 51; 0011 0011=> 0011 1011 转换为十进制 59
即 console.log(a | b) // 59
4、位运算 XOR 由符号(^)表示
位运算 XOR 是三步的处理过程:
- 把运算数转换成 二进制数, 位数不够左侧用0补位
- 遵循当只有一个数位存放的是 1 时,它才返回 1,否则为0的原则求得二进制结果
- 将得到的 二进制数转为十进制。
例:
var a = 77; => 0100 1101
var b = 61; => 0011 1101=> 0111 0000 转换为十进制 => 112
即console.log( 77 ^ 61 ) // 等于 112
最新文章
- 嵌入式系统降低功耗的设计技术
- 曙光计算机系统,曙光1000大规模并行计算机系统
- 智能合约开发环境搭建及 Hello World 合约
- linux查看端口号是否被占用
- leetcode 477. Total Hamming Distance | 477. 汉明距离总和
- IPython的一些使用技巧
- python编程教程if_Python编程:从入门到实践——【作业】——第五章(if语句)...
- java owl文件_jena解析.owl文件 实现owl文件的解析 - 下载 - 搜珍网
- Linux - xshell上传文件报错乱码
- java调用一个外部url_Spring Boot :访问外部接口
- 获取request的json数组对象
- vue页面乱码_项目部署到weblogic后页面乱码问题
- 免费数据恢复软件恢复SanDisk丢失的资料
- 【运营数据分析】运营数据分析怎么做?建立运营数据分析思维
- 为什么使用多线程,多线程如何提高效率
- MSVCR100.dll丢失
- pip install xx 时遇到There was a problem confirming the ssl certificate...的解决办法
- TCP/IP第四章笔记ARP协议
- 前端VUE及PHP常见业务场景概括小结(程序猿提薪必备!!!)
- Apple公司联系邮箱收录
热门文章
- [css] css中的border:none和border:0px有什么区别?
- 前端学习(2794):实现拨打电话功能
- 前端学习(2310):数据请求和json-server
- 前端学习(2282)全选和反选问题
- 前端学习(2175):认识路由文件的懒加载
- 前端学习(1992)vue之电商管理系统电商系统之实现搜索和清空
- 前端学习(1389):多人管理项目9登录功能具体实现
- 第三十五期:网络爬虫是啥玩意儿?有什么用呢?
- 计算机操作系统(8):进程的控制
- while(1)和while(0)