javascript - js中怎么理解按位取反?

查看:173
本文介绍了javascript - js中怎么理解按位取反?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

~ 运算符查看表达式的二进制表示形式的值,并执行位非运算。

Javascript 按位取反运算符 (~) ,对一个表达式执行位非(求非)运算。如 ~1 = -2; ~2 = -3;

js取反我只知道个!,但是~为什么也叫取反,他返回的又不是boolean类型?

~1,~2 的二进制又不是 -2 ,-3 ,怎么会转换成这么奇怪的值?

解决方案

按位取反还真和boolean没多大关系,大体流程是这样的:

就来看看~1的计算步骤:

  1. 1(这里叫:原码)转二进制 = 00000001

  2. 按位取反 = 11111110

  3. 发现符号位(即最高位)为1(表示负数),将除符号位之外的其他数字取反 = 10000001

  4. 末位加1取其补码 = 10000010

  5. 转换回十进制 = -2

计算步骤就这么奇怪,讨厌,但就是有牛逼的人乐意这么写,让你看不懂代码,以此表示高深莫测,去吧少年,去揍他们^^

这篇关于javascript - js中怎么理解按位取反?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆